|
C:\msdn cd1\Samples\Msdn\Techart\asfasasfas\print.cpp(578) : error C2440: '=' : cannot convert from 'void *' to 'struct HINSTANCE__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
C:\msdn cd1\Samples\Msdn\Techart\asfasasfas\print.cpp(590) : error C2440: 'initializing' : cannot convert from 'void *' to 'struct tagDEVNAMES *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Can anyone tell me what error is this and how to rectify it?
Thanks a lot
|
|
|
|
|
This is sometimes a symptom of porting C code to C++, since C's parameter type-checking is less strict than C++.
I think you'll get some more info on this if you search this forum for 'cast' or 'explicit'. Always a fun topic!
|
|
|
|
|
My code is below and the error occurs at "hOldBitmap = SelectObject(hMemDC, hBitmap);" show below. I tried adding static_cast< ...> in front of the input hMemDC & hBitmap but got syntax error. So what should be done to the code?
HBITMAP CopyScreenToBitmap(LPRECT lpRect)
{
HDC hScrDC, hMemDC; // screen DC and memory DC
HBITMAP hBitmap, hOldBitmap; //
....
hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);
hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
hMemDC = CreateCompatibleDC( hScrDC);
.....
hOldBitmap = SelectObject(hMemDC, hBitmap);
}
|
|
|
|
|
try:
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
This is actually a 'C style' cast. You'll see this kind of casting done a lot in typical Windows code.
Also, one often resorts to it in dealing with MFC functions that return a CWnd, when what we really want is a CWnd derivative:
CButton *pButton = (CButton*)GetDlgItem(IDC_MY_DIALOGS_BELLY_BTN);
HTH
|
|
|
|
|
I thank you for your earlier suggestion which helped solve most of my errors but it could not solve one error.
extern HANDLE ghDLLInst; // Handle to the DLL's instance. Set in DllMain.
.....
...
int APIENTRY InstallHook (HWND hWnd, BOOL bCode )
{
....
...if (bCode == bHookInstalled)
return 0;
if (bCode)
{
hHook = (HHOOK)SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardHook, (HANDLE)ghDLLInst
, 0);
......
}
....
}
The error lies in the line"hHook = (HHOOK)SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardHook, (HANDLE)ghDLLInst
, 0);" the complier says that cannot convert parameter "ghDLLInst" from 'void *' to 'struct HINSTANCE__ *' Conversion from 'void*' to pointer to non-'void' requires an explicit cast.
So how to solve this ? Anyway thanks alot for your earlier help.
|
|
|
|
|
Well...
hHook = (HHOOK)SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardHook, (HINSTANCE)ghDLLInst, 0);
might work.
But gee - this is a lot of casting... I guess in windows API (which is written in C btw) you could get away with using a HANDLE for an HINSTANCE.
This is probably what you'll need to do, but try to minimize the casts where you can. It's generally not a good thing to use casts because you are disabling the compilers type checking mechanism.
|
|
|
|
|
Does anyone has know about saving an output say , DIB into a newly created file in VC++ 6.0 for win98 ? This newly created file is also done by the program. Thanks for helping.
|
|
|
|
|
Hi , i want to enquire if anyone knows how to import icon & bmp into .rc file but the problem is if the .rc file has got error it can only be opened as .txt file and so how am i going to carry out doing it ?
|
|
|
|
|
The error means you have a conflict you will need to reslove with the .rc file. Let it show you where the error is, and probably delete the lines in question.
BACK YOUR FILE UP FIRST !!!
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
Hello
I would like to include a toolbar on my parent CDialog class.
On many books it is written how to had a toolbar to a CFrameWnd class but not on a simple dialog window. I tried to adapt it to a CDialog class with no success.
Does anyone have an idea ?
Thanks
|
|
|
|
|
The only way to do it is simulate it with your own window full of buttons - CDialog does not support toolbars.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
I wanted to know if VC++ was structured only like Visual Basic. That is to say that you have no choice but to just click+drag controls to your window and code for each separate one. Or can you do hard code and make your own buttons, checkboxes, windows, graphics, etc etc. If it can be used in the latter method, can MFC also be used? Or must you use the Windows SDK? I don't have the VC++ program yet, which is why I'm asking. And I'm rather new to windows. I've been using a Mac before so this is quite different. Also, I've heard both the name Visual C++ and Visual Studio. Are these synonymous or are they two separate programs with different uses? Thanks for your help.
|
|
|
|
|
You can certainly make totally customized controls. Most controls have an "owner draw" style, which means you're responsible for writing the code to paint the control. You can use MFC or the SDK, they both work.
There are tons of articles here about owner-drawn controls. Check out the Buttons section - there are several articles there.
Visual Studio includes VC, VB, Fox Pro, Visual InterDev, Visual Source Safe, and Visual J++. VC is also sold stand-alone.
--Mike--
http://home.inreach.com/mdunn/
"That probably would've sounded more commanding if I wasn't wearing my yummy sushi pajamas."
-- Buffy
|
|
|
|
|
Here is my error:
Compiling resources...
C:\msdn cd1\Samples\Msdn\Techart\asfasasfas\k.rc(14) : fatal error RC1015: cannot open include file 'dialogs.h'.
Error executing rc.exe.
Why is it i cannot open this .h file i have already added to my project?
|
|
|
|
|
You may need to set a path for the resource compiler - assuming you have the file somewhere, try opening the Project|Settings (Resources tab) and setting an Additional resource include path to the location of dialogs.h.
|
|
|
|
|
In a Visual C++ project you will find under the resource files a String file. If you dubble click a window will open and the string table will appear with in the first column a STRINGID and in the second column a text.
You can use this strings in your application with a simple statement liks this:
CString strMyString;
strMyString.LoadString(STRINGID);
|
|
|
|
|
What do you mean by "String Table"? An example would help us help you.
|
|
|
|
|
Hi,
I use NetMessageBufferSend like this :
NET_API_STATUS nErr = NetMessageBufferSend(NULL, bsToUserName, NULL, (unsigned char *)bsMsg, (sMsg.GetLength() + 1) * 2);
No problem if bsToUserName = "Computer1" and bsMsg="Good morning" for examples
BUT if i try to use others Net send options like :
* ( all alias )
/USERS ( for only connected users)
/DOMAIN:MyDomain ( for users of MyDomain)
NetMessageBufferSend fail and return ERROR_INVALID_NAME error. WHY???
Can anybody help me, please.
Thanks in advance
|
|
|
|
|
Hi
I like to export data into a MSExcel-table.
So it works, but how kan i change the sheets of my table ?!
I like to insert the data in into different sheets !
Thank's
|
|
|
|
|
Hello!
I'm having problems hosting the DHTML Editing component of Internet Explorer 5.5, the problem is:
When I create a MFC dialog app (or other type of MFC project) when I insert the 'DHTML Edit Control for ie5' the Developer Studio simple crashes!?
This strange thing only happens with ie5.5 with ie 5.0 there is no problem.
Can anyone help me with this?
Thanks,
Rui Lopes
|
|
|
|
|
I Tried it, but can't get it to crash.
(on NT4 and Win2000 boxes, both have IE5.5 and VS6)
However I did not try it out on all VS service packs.
Sorry that my answer does not fully help, but it at least lets you know that it is possible for it to work.
|
|
|
|
|
What? Is working in your box?
But I have the same configurations as you (VS6.0 SP4 NT4) and the damn thing doesnt work ((
The same happens to all computers in my school....
Does anybody have any ideia?
Thanks,
Rui Lopes
|
|
|
|
|
Does anyone knows if my program needs to access a function on a dll how to go about doing it?
|
|
|
|
|
HI,
there are two ways of doing it
1. You can link the dll statically, at the compile time and import the functions of the dll. And after that you can use them as any other function calls.
2. Loading the dll explicitley. This allows you to load the dll at the runc time and find the function pointer inside the dll and then invoke the function using the pointer.
Here you have to use WIN32 api
LoadLibrary (..) to load the library
GetProcPtr (...) to get function pointer.
Please refer MSDN or Advanced Windows by Jefry Richer for the above topic. Its described very well there...
Hope this helps you a bit...
Best Regards
Srinidhi Rao.
|
|
|
|
|
HI,
there are two ways of doing it
1. You can link the dll statically, at the compile time and import the functions of the dll. And after that you can use them as any other function calls.
2. Loading the dll explicitley. This allows you to load the dll at the runc time and find the function pointer inside the dll and then invoke the function using the pointer.
Here you have to use WIN32 api
LoadLibrary (..) to load the library
GetProcPtr (...) to get function pointer.
Please refer MSDN or Advanced Windows by Jefry Richer for the above topic. Its described very well there...
Hope this helps you a bit...
Best Regards
Srinidhi Rao.
|
|
|
|