目前开发一组态软件X.exe的驱动程序A.dll(win32), 有现成的测点枚举驱动B.dll可供使用(其实这里我是必须要使用的),在A.dll中调用B.dll中某一枚举框函数时,程序会重新好几次重新计入A.dll的WinMain函数,而且被调用的枚举框最终还是会产生,但最终导致程序异常。我感觉是X.exe调用A.dll出现了问题而产生了重复调用(原因肯定是A.dll加载B.dll的函数时引起的,未调用B.dll函数时正常)。
现在我就产生了一个疑问:Win32 dll能否调用MFC dll,MFC调用MFC dll好像有切换机制,如AFX_MANAGE_STATE(AfxGetStaticModuleState()),但Win32 中我不知道对应的是什么函数?是否没有?
请高手给小弟解释解释,不胜感激啊!
现在我就产生了一个疑问:Win32 dll能否调用MFC dll,MFC调用MFC dll好像有切换机制,如AFX_MANAGE_STATE(AfxGetStaticModuleState()),但Win32 中我不知道对应的是什么函数?是否没有?
请高手给小弟解释解释,不胜感激啊!
解决方案 »
- 请问有没有能让VS2010关键字斜体显示的插件?
- 急!!!!高手帮我支个招:用udp广播发送文件
- icmp 数据截取
- 为什么随windows启动的程序无法修改注册表?
- 能否直接获取到调用的模态对话框中的CComboBox选择值??
- 怎样用VC编译成可以脱离环境的可执行文件,谢谢大家了
- 正在回复帖子,突然发现俺也成*星*了,散分!!!!!
- 请各位大哥推荐几本vc/mfc对数据库编程比较好的书籍,谢谢了,一定给分!
- 关于非文档视图结构程序的菜单
- 哪儿有"Inside COM" and "COM 原理与应用" 电子版?
- 泪流满面,问题征解
- 为什么说"ATL的双接口"效率比IDispatch::Invoke()要高?
HINSTANCE hinstDLL, // handle to DLL module
DWORD fdwReason, // reason for calling function
LPVOID lpReserved ) // reserved
{
// Perform actions based on the reason for calling.
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
// Initialize once for each new process.
// Return FALSE to fail DLL load.
break; case DLL_THREAD_ATTACH:
// Do thread-specific initialization.
break; case DLL_THREAD_DETACH:
// Do thread-specific cleanup.
break; case DLL_PROCESS_DETACH:
// Perform any necessary cleanup.
break;
}
return TRUE; // Successful DLL_PROCESS_ATTACH.
}
如果是隐式加载DLL:
DLL_PROCESS_ATTACH、DLL_PROCESS_DETACH只有程序开始、结束时各一次;DLL_THREAD_ATTACH、DLL_THREAD_DETACH可能有多次。
一般情况下,初始化操作都只在DLL_PROCESS_ATTACH中进行