|
Hi!
I would like to get a message when a key is pressed in a dialog box. But my Dialog Procedure doesn't receive the Windows WM_CHAR, WM_KEYDOWN or WM_KEYUP messages. I think is due to the fact that another control got the focus, for example a button.
Is there a way that my Dialog Procedure receive theses messages anyway, like in Visual Basic for example when the KeyPreview property is set to true?
Thks in advance!
Appstmd
|
|
|
|
|
In MFC, PreTranslateMessage would be a good place to check for WM_CHAR. If you're on Win32 API, things are more complicated...
Tomasz Sowinski -- http://www.shooltz.com
- It's for protection - Protection from what? Zee Germans?
|
|
|
|
|
|
Thanks you, but I don't use MFC. I'm programming with the Win32 API. Is there an equivalent to the PreTranslateMessage in Win32 API?
Thks in advance!
Appstmd
|
|
|
|
|
Hi,
Strange problem... I've constructed a dll (mfc extention) with VC++ 6.0 for another application that use it.
The project of this DLL use 2 files added:
ExportFile.h and ExportFile.cpp
where we can found for ExportFile.h:
#ifndef __EXPORTFILE_H_
#define __EXPORTFILE_H_
#define DLLEXPORT _declspec(dllexport)
typdef struct {
BYTE member1;
BYTE member2;
} TCHA_DIG;
DLLEXPORT DWORD Init(TCHA_DIG* channel);
DLLEXPORT void StartAcquisition(TCHA_DIG channel);
#endif
And for ExportFile.cpp
#include "stdafx.h"
#include "ExportFile.h"
DWORD Init(TCHA_DIG* channel)
{
return 0;
}
Ther's no error and no linking problem when I compile this project
The application (which use this DLL) use the file MyProject.lib and ExportFile.h well (the settings are good).
The problem is as follows:
when I start the application (which use the DLL) a message box tell me
"The entry point for ?StartAcquisition@@YAXPAUTCHA_DIG@@@Z procedure was not found in the Dynamic Linking Library MyDLL.DLL"
But, the most strange is that all is OK on my OTHER PC...(the 2 PC work with win2k and VC++ 6.0)
Please help me... thanks in advance...
Hello World!!!
from Raphaël
|
|
|
|
|
Maybe (and if thats not the case I apologize), but maybe you have at the Application directory an older version of the Dll you once developed. check if the app is looking for the right dll and the right lib.
Guy.
|
|
|
|
|
Of course... Thanks for this answer...
Hello World!!!
from Raphaël
|
|
|
|
|
As far as I know, if You put function declaration in the .h file, but don't place it's definition in a .cpp file the likner and the compiler will not report any error unless You try to use this function somewhere.
I assume You have the code for StartAcquisition in Your .cpp file (at least an empty function) ?
If yes, then I'm surprized with that "no entry point" too.
Railgun is like a Gilette Mach 3 - it does the job with one, easy stroke.
|
|
|
|
|
The problem comes owing to the fact that I left an old version of this DLL.
Moreover, I used the new lib file generate (and the old dll)...
Thanks nevertheless...
Hello World!!!
from Raphaël
|
|
|
|
|
Use extern "C" :
extern "C"
{
DLLEXPORT DWORD Init(TCHA_DIG* channel);
//[... other DLLEXPORT...]
DLLEXPORT void StartAcquisition(TCHA_DIG channel);
}
|
|
|
|
|
I often heard about this syntax but which are its advantages???
I observed with this syntax another arrangement of the *.lib file... Why???
Thanks...
Hello World!!!
from Raphaël
|
|
|
|
|
how can i store 30 digits number in an int variable. if it is possible, then plz help me regarding this problem.
|
|
|
|
|
|
how to use that (__int64), it's not a data type, plz reply
|
|
|
|
|
|
No, __int64 is a native (but non-standard) datatype available in VC6 as well.
Tomasz Sowinski -- http://www.shooltz.com
- It's for protection - Protection from what? Zee Germans?
|
|
|
|
|
|
Nishant S wrote:
You'll need the new Platform SDK or VC++.NET
Sure?
I use it since good old Visual C++ 4.x day...
--
Daniel Lohmann
http://www.losoft.de
|
|
|
|
|
|
Do you actually need to do mathematical operations on this number, or is it just to store it. If you just need to store, then you could put it in a string or char array
--
Help me! I'm turning into a grapefruit!
|
|
|
|
|
Do you want to store a telephone number or similar why don´t you use a string or as mentioned a selfwritten class, where you can define some operations as comparesion.
Have a lot of fun
|
|
|
|
|
Damn that is a big number.
|
|
|
|
|
Hi,
I cant understand this: in my program, I have to support multi-language resources. So I did DLL for each language I need to support. The resources ID are the same in every DLL, only the content vary. But I cant understand, why does my program load dialogs from DLL, if I this DLL only link from LoadLibrary. The same case is with menus and toolbars...How can the program recognize which library to use ?
Celebrate Mr. Cesilko!
|
|
|
|
|
All resource-related functions (DialogBox, LoadString, etc...) in Win32 api use HINSTANCE parameter. You need to load your .dll with LoadLibrary[Ex], store the return value and pass the handle to resource functions.
If you're using MFC, AfxSetResourceHandle takes care of passing instance handle to Win32 api. In fact, MFC searches resources through so-called resource chain. You can have common resources in .exe and language-dependent in .dlls.
Tomasz Sowinski -- http://www.shooltz.com
- It's for protection - Protection from what? Zee Germans?
|
|
|
|
|
Hi,
I have a property sheet embeded inside a form view and I would like to validate the controls on an individual property page before the selected page changes.
I have tried to handle this in OnKillActive but this gets called when other controls on the formview are selected. I only whant to validate on a page change.
Has anyone got any ideas
Cheers,
Will
|
|
|
|