|
hi !!
I am facing some problem retrieving size of a string from string Table. I am using FindResource() function to get handle for the resource.
I refered MSDN and get to know that String Table is stored as a block of memory of 16. Thus FindResource() will always give me address of that block. I am successfully retrieving handle to the block where the desired string is present.
The problem is I know at which place/ index the string is present in that block. But dont know how to retrieve it!! I want to get its size.
Can somebody plz help me on this!
Thx in advance
I am posting the code here
LPSTR GetErrorString(UINT uiStringId)
{
int iRetVal=0;
DWORD dwResSize=0;
char temp[10];
HRSRC hRes;
DWORD nID = (uiStringId >> 4) + 1;
DWORD nitemID = uiStringId % 0x10;
hRes = FindResource(gl_hModule,MAKEINTRESOURCE(nID), RT_STRING);
dwResSize=SizeofResource(gl_hModule,hRes);
....
...
..}
|
|
|
|
|
Why don't you try LoadString, that would be more comfortable for loading string resources.
|
|
|
|
|
Thx for the reply!
Actually I want the size of the string before calling LoadString().
This will allow me to allocate memory dynamically for that string.
|
|
|
|
|
sach!! wrote: This will allow me to allocate memory dynamically for that string.
It would be less troublesome to just allocate a (slightly) bigger-than-necessary buffer.
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
|
Hi,
I have two unicode text files. Each file contains different SymbolicID's with corresponding messages. Now I want to replace the a line of text in the second file of the corresponding symbolic name is found in the first file. So kindly help me anybody,
how to replace a line with files using VC++.
Thanks & Regards
knarasimharao
knarasimharao
|
|
|
|
|
iam adding the file into the listbox and also iam adding all the files in the folder using below code
CString csFolderSelected;
BROWSEINFO bi = {0};
bi.ulFlags = BIF_RETURNONLYFSDIRS ;
LPITEMIDLIST pIt;
if( (pIt = SHBrowseForFolder( &bi )))
{
TCHAR tcPath[ MAX_PATH ];
if( SHGetPathFromIDList( pIt, tcPath ))
csFolderSelected = tcPath;
}
TCHAR lpszOldPath[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, lpszOldPath);
::SetCurrentDirectory(csFolderSelected);
m_list7.Dir(DDL_READWRITE|DDL_DIRECTORY, _T("*.mp3"));
::SetCurrentDirectory(lpszOldPath);
but problems i want to add the files with path but it is aadding only name of the file in the folder,
please help.
|
|
|
|
|
See if GetFullPathName() help?
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
in my code wheere should i kkep this
|
|
|
|
|
You should call the GetFullPathName() wherever you wish to show the full path of the file. If you are showing in a list box then use GetFullPathName when you are entering values in the list box
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
i tried but i didnot know how to use.
please tell how to use.
|
|
|
|
|
CFile file;
file.Open ("abc.txt",CFile::modeCreate | CFile::modeWrite );
DWORD buffLen=255;
char *filepath=new char[MAX_PATH];
file.Close ();
GetFullPathName("abc.txt",buffLen,filepath,NULL);
Here I created a file in the project directory and then using GetFullPathName I get the full path of the file in the string filepath
Does this solve your problem?
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
You can use DlgDirList(lpszCurDir, IDC_LIST1, 1, 0); it work with ListBox
int DlgDirList(HWND hDlg,LPTSTR lpPathSpec,int nIDListBox,int nIDStaticPath ,UINT uFileType);
this parameter return a path in a control(static or...)
maybe it is some helpful to you
whitesky
|
|
|
|
|
thsnk u,
i can't understand what u told so please give example so that i can easily understood.
thank u,
|
|
|
|
|
no its not hard use like this and see result
DlgDirList(yourpath, IDlistbox,idStaticcontrol,attributes);
In additional you can see DlgDirList example in MSDN
whitesky
|
|
|
|
|
i sne d me code in the above discussion.
please see the code and tell where should i replace this.
please i am unable to solve that please help me,
ram.
|
|
|
|
|
I see your code one question,
you need to get files with paths for example in drive c you have ten mp3 files in directory Music now you want to get these files in your list with path like this c:\Music\1.mp3,c:\Music\2.mp3 and... Right?
whitesky
|
|
|
|
|
yes,
like that it should be added in the listbox
|
|
|
|
|
See this it work but you need to check for . and .. that its easy you can use from SetCurrentDirectory and check return value from this function
<code>
CListBox *m_List=(CListBox*)GetDlgItem(IDC_LIST1);
WIN32_FIND_DATA lp;
HANDLE hFind = INVALID_HANDLE_VALUE;
BOOL Bool=0;
CString csFolderSelected;
BROWSEINFO bi = {0};
bi.ulFlags = BIF_RETURNONLYFSDIRS ;
LPITEMIDLIST pIt;
if( (pIt = SHBrowseForFolder( &bi )))
{
TCHAR tcPath[ MAX_PATH ];
if( SHGetPathFromIDList( pIt, tcPath ))
csFolderSelected = tcPath;
}
TCHAR lpszOldPath[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, lpszOldPath);
::SetCurrentDirectory(csFolderSelected);
hFind = FindFirstFile(_T("*.*"), &lp);
if(hFind)
Bool=1;
while (Bool!= 0)
{
m_List->AddString(csFolderSelected+lp.cFileName);
Bool=FindNextFile(hFind, &lp);
}
FindClose(hFind);
</code>
whitesky
|
|
|
|
|
thank u very much iam getting,
with this code thank u,
once i add the folder,it is ok.
if i open again aadd folder and i click cancel then also it's adding the previously selected folder,
how we can rectify this
|
|
|
|
|
Im sorry i dont understand
whitesky
|
|
|
|
|
thank u i get that .
if i click taht in my list box it should play .
but how can i get the path of the file.
please tell me.
ram.
|
|
|
|
|
How to get this file when you get a file you have a path
whitesky
|
|
|
|
|
if we add two folders then we are losing first folder,
so that iam unable to play a song.
how we can rectify this.
ram.
|
|
|
|
|
I guess this problem but im not sure that this is your problem.Its not problem :
You have 20 mp3 files in 5 directory you get each file from a directory and insert to listbox so you want to play these files one simple way you get each path and then insert this path in one array and then read from Array.
--------
two way when you want to insert file to listbox insert Path+File so you dont need to save a path
whitesky
|
|
|
|