|
If the structure is different, then it's not an id3 tag, is it ?
I have no idea how they are encoded then.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Whatever, thanks for your kind. To speak the truth, I don't know what should them be called, but I'm used to use the id3 tag for all the format. Just the info for Title, Album, Artist, Genre, Year, Comment and Track.
|
|
|
|
|
Hello,
First things first! Is it the ID3v1 tag or the ID3v2 tag.
About the ID3v1 tag:
It is always 128 bytes long and it's located at the very end of the file. Those bytes mean the following:
0 - 2 : These bytes contain the string "TAG", if not, it's not a valid ID3v1 tag!
3 - 32 : Song Title.
33 - 62 : Artist.
63 - 92 : Album.
93 - 96 : Year.
97 - 126: Comments.
127 : Genre.
Sometimes byte 125 and 126 are the track number on the album!
More information on the ID3v1 tag can be found here[^].
about the ID3v2 tag:
It's size is variable, it can contain almost everything (even another song, lyrics, pictures...). This tag is located at the beginning of the file.
Read more about this tag here[^.
These sites helped me alot when I developed an application that needed to read those tags. I hope it does the same for you!
A student knows little about a lot.
A professor knows a lot about little.
I know everything about nothing.
|
|
|
|
|
Hi,Bob Stanneveld,
Thanks for your kinds.
I have visited the site and have got some information on it. But the info is for MP3. The tag for mp3 is different for wma and ogg. I have finished the function for MP3 files and now I am working on wma and ogg files. Any suggestion?
|
|
|
|
|
Hello,
Sorry that I overlooked the fact that ID3v# tags are for MPEG encoded streams.
Since WMA stands for WINDOWS media audio, I did some searching on msdn and this[^] is what I came up with. You can find the discription, the sdk and more on it.
After googling for the OGG file format documentation, I found some interesting results here[^].
Good luck.
A student knows little about a lot.
A professor knows a lot about little.
I know everything about nothing.
|
|
|
|
|
Thanks for your help. I'll study those documentation. You know, I just a newer. It maybe spend me a long time and I'm not sure whether I could finish it. But I'll try my best.
Nice to meet you. Good luck, too.
|
|
|
|
|
Glad I could help !
I'm also a newbie, 18 and got much to learn and a very long way to go
A student knows little about a lot.
A professor knows a lot about little.
I know everything about nothing.
|
|
|
|
|
I am trying to create MFC-based dll that will present SDI Doc/View interface
to the user.
[my question is at the end of this rather lengthy post]
This dll will be called from Win32 application that is not MFC based (also,
this app is
written in C, not in C++).
I created MFC-based dll project (called MFCDLL) using the Wizard.
In this project I created following classes:
CPrintingDoc (derived from CDocument)
CPrintingView (derived from CView)
CMainFrame (derived from CFrameWnd)
I created an exported function in this dll:
extern "C" __declspec(dllexport) int SomeFunction(int n)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
theApp.Initialize();
return ++n;
}
My intent is that Win32 application calls SomeFunction(), and SomeFunction
initializes Doc/View environment. Related piece of code looks like this:
BOOL CMFCDLLApp::Initialize()
{
AfxEnableControlContainer();
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CPrintingDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CPrintingView));
AddDocTemplate(pDocTemplate);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// The one and only window has been initialized, so show and update it.
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
Essentially I replicated by hand the code that wizard generates for the
MFC-based .exe application
I also created String Table resource in this dll and added the following
string to it:
IDR_MAINFRAME TEST\n\nTEST\n\n\nTEST.Document\nTEST Document
When I start Win32 application and call SomeFunction() I get the dialog box
with message:
"Failed to create empty document",
and the view is not created.
Stepping through the code I found that the document is actually successfully
created
in function
CDocument* CSingleDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName,
BOOL bMakeVisible)
This function is in file DOCSINGL.CPP (MFC source code). Document is created
in line 112:
[line 112] pDocument = CreateNewDocument();
The problem lies further in the same function, when in line 132 it attempts
to create the
frame:
[line 132] pFrame = CreateNewFrame(pDocument, NULL);
This function call returns NULL, the frame is not created, and this is why I am receiving this error message.
So my understanding at this point is that I maybe have to create this frame
window
myself somewhere in CMFCDLLApp::Initialize() before
if (!ProcessShellCommand(cmdInfo))
line (the failed attempt of frame creation is deep inside
ProcessShellCommand())
Is that right ? How would I do this ?
Or maybe I am going in the completely wrong direction - in that case please
suggest what
I need to do differently
|
|
|
|
|
Hi,
I don't have any experience with dlls. I have created a resource only dll and I want to call the resources from a different project, a SDI application. How do I so that? Please reply
|
|
|
|
|
first you need to load the resource dll using loadlibrary and get its instance handle.
Now this instance handle should be supplied to ::LoadIcon
::LoadString etc where ever it is necessary,
The resource.h file of the resource only dll should be #inclueded in ur sdi application, be carefull it may clash with ur sdi resource.h file too.
there are other apis releated to resoruce handling you can refer MSDN for that.
My God is more powerfull Than Your God. (the line that divides the world)
|
|
|
|
|
I guess this is not actually a C++ question but can someone shed some light on the meaning of these paths ( I am not even sure what they are called ).
1) . ( does this mean current dir )
2) ..\\
3) ..\\..\\
4) \somedir\debug\someexe.exe
I sometimes need these when doing a postcompile copy of a dll to a working folder. I don't like to use paths like c:\program\plugindir\ for example. I would search the net myself I just don't know what to search for.
Thanks
|
|
|
|
|
smesser wrote:
1) . ( does this mean current dir )
2) ..\\
3) ..\\..\\
4) \somedir\debug\someexe.exe
First off - notice that in 1-3, you used \\ and in 4 you used \.
Using '//' is a C/C++ language feature (double escape sequence) and not the way you would navigate directories in an OS. Using '\\' is a way to let the OS know that you are referring to a network resource - but only after the drive letter. I have never used - or seen used - '\\' to define subdirectories.
1 - current directory - current directory is OS dependent. Some OS' determine a system-wide current directory according to the last directory accessed (ie MS-DOS). Current directory may also be relative to the logged in user's last disk access.
2 - ..\\ refers to the parent directory of the current directory (see #1)
3 - ..\\..\\ refers to the parent directory of the parent directory of the current directory (see #1)
4 - Is an absolute path from the root drive of the current directory. It could also be relative to the home directory of the currently logged account/website/whatever
The relative paths could be different depending upon what permissions you have when you access the resource in question. If your server has C:, D: & E: hard drives and you have a web client whose login directory is on E:\users\joblo and there was a file E:\users\joblo\index.html then you (as a user with root acces) would access it as E:\users\joblo\index.html but he would access it as \index.html
If you used an app to access that file path and you entered \index.html, you might end up with a totally different file (most likely a file named index.html that resided on your machine's bootable hard drive).
|
|
|
|
|
Terry,
Thanks, very useful information for me.
Opps I did confuse the issue a little with the double slashes but thanks for seeing through to my real question.
Steve
|
|
|
|
|
Hi,
Is it at all possible to create several executables in the same project? I'm using Visual C++ .NET 2002.
I would like to be able to quickly create small test programs using the classes I develop for my main program in the project. So I would just like to be able to add a small testfile containing just a simple console prog and do some simple tests.
Please forgive me if this is a stupid question, but I have only recently started using VS and I have searched the documentation without finding the answer.
thanks
Luddet
|
|
|
|
|
In your solution
File - Add Project - New Project / Existing Project.
(Solution can contain many projects, the term has changed)
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Thanks, but I know that one solution can contain many projects. That's not what I'm after.
I need to know if it's possible to have several files with a main() or WinMain() in each, and have each one of them generate an executable. And I want to have them in the same project.
I know I can setup another project and "Add existing..." and selecting files from another project. But I don't like to litter my workspace with too many projects with the accompanying directories in my solution directory.
|
|
|
|
|
I think you are talking about MAKE file. You can configure the MAKE file to do the thing that you want. However, i am not familiar with it.
Another option if you do not want to edit your MAKE is you configure your IDE to do batch build.
Hope this helps.
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Hmmm... that sounds kind of involved too...
But I'll have a look at it anyway.
Thanks
/luddet
|
|
|
|
|
luddet wrote:
I need to know if it's possible to have several files with a main() or WinMain() in each, and have each one of them generate an executable. And I want to have them in the same project.
No. A project produces only one executable unless you mess with make files or custom builds to rig it to make more than one executable.
Use multiple projects and do batch builds. I do this all the time. For vc6 I have an addin that I run msvc from the command line and it will build all projects in the workspace.
John
|
|
|
|
|
well, batch builds is a piece of cake in .net, just SHIFT+CTRL+B.
I guess I'll just have to setup an extra test project for each regular project then
thanks for your help guys
/luddet
|
|
|
|
|
Hi,
I want to access and show a few html files and jpg files. I am thinking about making a resource only dll containing the html and jpg files. But I have never made one and I have few questions, Please reply.
1. My SDI project and Resource Only DLL should be two separate project, or I can include a resource only dll in my SDI application?
2. How do I access the resources in the dll from my application?
3. If SDI application and the dll are 2 separate project how are they loaded together, so that if I port my exe to a different machine it would work?
4. .jpg files are what kind of resources? because I just see ico and bitmap resources in the resource import dialog.
Please advise soon
Thanks
|
|
|
|
|
1. YOu need to have 2 seperate workspace one for your sdi
application and other for ur resource only dll.
2. The projects will be definitely be 2 but you can insert the resource only project into ur sdi project workspace so that you can work on both simultaneously.
3. You need to supply both the modules when installing in other machines and also other dlls that ur modules are depending upon ( you can get the list by using depends.exe supplied with visual studio.
4..jpg will be inserted as custom resource loading and using custom resource is a different topic, (that i dont know much about)
hope i answered ur quries.
My God is more powerfull Than Your God. (the line that divides the world)
|
|
|
|
|
Hi everyone,
I have a small set of classes that use MFC's CDatabase class to communicate with SQL server. I need to convert my classes to an ATL control because I need to use it in a C# SOAP Web service.
The CDatabase performance is not very good, in my opinion. Anyways, I was thinking of taking this opportunity to optimize my code as well. So, I was wondering what would be the best database library to use in your opinion. I am developing under VC++ 6.0. No scope for any .NET stuff with this one.
Looking forward to hearing from you fine folks.
Sincerely,
Pankaj
Without struggle, there is no progress
|
|
|
|
|
|
what is the command for getting a pointer to the document class from a dialog class. Sorry if this is a basic question, but I don't seem to know how to get variables from the doc class from my document class
Q-Bus
|
|
|
|