|
Ummm, this is weird . . .
I checked the implementation and everything looks correct. The function is stubbed in both my GuiObject.h and GuiObject.cpp files.
Just for grins, I tried removing the virtual keyword from the function in the header. It compiled just fine. Then I made it virtual again and now it compiles fine either way.
Is this a VS.NET bug??
Thanks for pointing me in the right direction, though.
|
|
|
|
|
We used to build our software with VC 6.0 and use rebase.exe to split the debug information off into a separate file (after adding debug information to the Release builds). Once we moved to VS 2005 and Vista, the same procedures stopped working. The Release build still have the options turned on to add debug information to executables; however, rebase.exe fails to find it.
We need the .dbg files so that we can create crash reports, if the software ever fails on a remote system.
cheers,
-B
|
|
|
|
|
Hi...
I've a VC5 Win32 dll which I've converted to VC8 with same code and project settings.
The dll contains lot of STL code.
I'm getting crash from the main application when I'm using release version of the DLL. The Debug version works fine.
Could anybody help me out...?
|
|
|
|
|
I use VC2005.
When I compile the project with /GX-,such error:
LINK error1181:Cann't open input file "Gx.obj"
Somebody would like to help me how to resolve such problems?
Thanks
|
|
|
|
|
well, obviously, you set the parameter on the linker, not the compiler...
|
|
|
|
|
perhaps that is true.
And would you like to tell me how and where should set such parameter?
Thanks
|
|
|
|
|
kcynic wrote: /GX-
This is taken as an input object file for the linker, hence the gx.obj. Are you sure you gave it to the compiler and not the linker ?
|
|
|
|
|
Hi all,
Any pointers on methods of image comparision(two bmp image sof high resolution)
Regards
|
|
|
|
|
Have you seen this?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hello,
I have a control window of type CEdit over which I want a ListBox to appear.
But when the list box appears on the edit box some part of the edit box is still seen even within the listbox.
How should I hide the edit box completely ?
Thanks
Prithaa
|
|
|
|
|
completely?
With a this->ShowWindow(SW_HIDE);
I hope this works in your case
|
|
|
|
|
CEdit::ShowWindow(SW_HIDE);
Greetings from Germany
|
|
|
|
|
I have written a piece of code to enumerate a subkey name in the registry.Here is the function:
<code>
HKEY RegOpen( HKEY hKey, LPCTSTR pszSubKey, DWORD dwRights)
{
HKEY hSubKey;
if ( RegOpenKeyEx(
hKey,
pszSubKey,
0,
dwRights,
&hSubKey
) == ERROR_SUCCESS
)
{
return hSubKey;
}
return NULL;
};
bool RegEnumSubKeys(
CString szName,
HKEY hStartKey,
CString strStartKey
)
{
DWORD dwSubKeyCnt, dwMaxSubKey;
if ( RegQueryInfoKey(
hStartKey,
NULL,
NULL,
0,
&dwSubKeyCnt,
&dwMaxSubKey,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
) == ERROR_SUCCESS
)
{
if(dwSubKeyCnt)
{
dwMaxSubKey +=1;
LPTSTR pszKeyName = (LPTSTR)::malloc( dwMaxSubKey*sizeof(TCHAR) );
if(pszKeyName)
{
FILETIME ftWriteTime;
LONG retCode;
DWORD i=0;
for(i=0;i< dwSubKeyCnt; i++)
{
if (ERROR_SUCCESS == (retCode = RegEnumKeyEx(
hStartKey,
i,
pszKeyName,
&dwMaxSubKey,
NULL,
NULL,
NULL,
&ftWriteTime
))
)
{
CString csFound;
csFound.Format(_T("%s\\%s"), strStartKey, pszKeyName);
TRACE(_T("%s\n"), csFound);
HKEY hSubKey = RegOpen(hStartKey, pszKeyName, KEY_ALL_ACCESS);
if(hSubKey)
{
if(RegEnumSubKeys(szName, hSubKey, csFound))
{
RegClose(hSubKey);
}
else
{
RegClose(hSubKey);
::free( (LPVOID) pszKeyName );
return false;
}
}
else
{
::free( (LPVOID) pszKeyName );
return false;
}
}
else
{
::free( (LPVOID) (LPCTSTR) pszKeyName );
return false;
}
}
::free( (LPVOID) pszKeyName );
}
else
return false;
}
return true;
}
return false;
};
unfortunately, the function only can trace one branch of the registry. I checked the code, the RegEnumKeyEx returned ERROR_MORE_DATA when it execute twice or more。However, if I use the RegEnumKey instead of RegEnumKeyEx, the function works well. Who can tell me why? Highly appreciated!
-- modified at 20:47 Monday 6th August, 2007
|
|
|
|
|
Please modify your post by surrounding the code snippet with <pre> tags.
How is RegEnumSubKeys() initially called?
What is RegOpen() ?
I assume you know of the missing comma in the function's parameter list.
Have you considered simplifying your code to something like:
LONG RegEnumSubKeys( HKEY hStartKey, LPCTSTR lpszStartKey )
{
LONG retCode;
HKEY hSubKey;
TCHAR szKeyName[MAX_PATH];
int i = 0;
retCode = RegOpenKeyEx(hStartKey, lpszStartKey, 0, KEY_READ, &hSubKey);
if (ERROR_SUCCESS == retCode)
{
while (ERROR_SUCCESS == retCode)
{
DWORD dwMaxSubKey = MAX_PATH;
retCode = RegEnumKeyEx(hSubKey,
i++,
szKeyName,
&dwMaxSubKey,
NULL,
NULL,
NULL,
NULL);
if (ERROR_NO_MORE_ITEMS == retCode)
break;
else if (ERROR_SUCCESS == retCode)
retCode = RegEnumSubKeys(hSubKey, szKeyName);
}
retCode = RegCloseKey(hSubKey);
}
return retCode;
}
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanks for you response! I have appended the RegOpen function to the original code snippets.
I have tried your code, unfortunately it can only enumerate one branch of the registry just like my original code. If replace the RegEnumKeyEx with RegEnumKey, it works. However, the RegEnumKey is obsolete in MSDN.
In the CodeProject site, I checked http://www.codeproject.com/system/cregistrykey.asp[^] that uses RegEnumKeyEx to finish the job. It is pretty complicated and I did not find remarkable logical differences between his codes and mine.
|
|
|
|
|
retinex wrote: I have tried your code, unfortunately it can only enumerate one branch of the registry...
I'm not sure what you did to make it stop working, but I used that code to drill down several levels deep and it worked fine.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
<code>for(i=0;i< dwSubKeyCnt; i++)
{
DWORD ghostMaxSubKey = dwMaxSubKey;
if (ERROR_SUCCESS == (retCode = RegEnumKeyEx(
hStartKey,
i,
pszKeyName,
&ghostMaxSubKey,
NULL,
NULL,
NULL,
&ftWriteTime
))
)
{
Thanks for your help.
I checked my code and added one line prior to the RegEnumKeyEx,e.g. the Underlined code. It works fine. However, I don't know why?
|
|
|
|
|
I get the error when compiling my old project with VS 2005, no problems with VS 2003.
:-
3>c:\AC_emu\filetreectrl.cpp(460) : error C3861: 'TRACE': identifier not found
How can I get rid of this error please;
e.g. TRACE(_T("Cannot select a empty path\n"));
|
|
|
|
|
It's an MFC construct. Is your project using MFC?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Yes its an MFC Dialog application.
|
|
|
|
|
I had a number of issues porting to VS2005, but TRACE macros weren't one of them - they seem to work just fine. Carefully check the include files. On my current project, clicking on a TRACE macro shows that
in afx.h
#define TRACE ALTTRACE
and in afx.h
#include <alttrace.h>
which has the definitions
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
I have a win32 app that is usually never run directly from the exe but rather we create a shortcut to it (on desktop) and run from there. Reason for doing so is that in the shortcut we can spcify the "Start in" folder (which is different from \debug folder where the exe is placed) and the application uses this working folder to store some data. If we directly run the exe, it will assume the current folder (\debug) to be the working folder, which is not OK for my app.
Now the problem is, when I start debugging with F5, it runs the exe form \debug folder. How can I set it to run the desktop shortcut rather than the main exe? I am using VS2005.
It's better to know some of the questions than all of the answers.
Pravin.
|
|
|
|
|
in the debugging settings, you can specify the starting folder...
|
|
|
|
|
Thanks for the quick help. I got it working
It's better to know some of the questions than all of the answers.
Pravin.
|
|
|
|
|
Hi there,
i open a DOS-Console in a MFC-Application, by launching wmain(0,0);
But i don't get a Console-Window, how is it possible to open a console window
apart of creating a new process or something like this.
Big thanks
PS: a printf does entry the chars into stdout, that works ...
|
|
|
|
|