请教达人,传递到dll的数据,如何保存?

stanlynet 2013-08-12 03:03:23
DWORD dwData1;
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
extern "C" __declspec( dllexport ) void ReceiveData(DWORD dwData)
{
dwData1=dwData;
}
extern "C" __declspec( dllexport ) void CheckData()
{
char chr[64];
itoa(dwData1,chr,10);
MessageBox(NULL,chr,"保存的数据",MB_OK);
//此处检测dwData1数据始终为0,不知是何原因?

}
//========================================
此dll中有两个导出函数 ReceiveData 和 CheckData,用LoadLibrary动态载入此dll,调用ReceiveData(300),再调用CheckData(),dll中的数据dwData1始终为0,不知如何能保存传来的数据300?请达人帮忙释疑,多谢。
分不多了,包涵。
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshinia 2013-08-14
  • 打赏
  • 举报
回复
我试了下,代码没问题啊,自己调试下看看是不是其他地方出问题了。
zgl7903 2013-08-12
  • 打赏
  • 举报
回复
LoadLibrary 后 有没有用 GetProcAddress 获取函数接口地址?
hdg3707 2013-08-12
  • 打赏
  • 举报
回复
DWORD dwData1; 改成: extern "C" __declspec( dllexport ) DWORD dwData1;试试
快乐鹦鹉 2013-08-12
  • 打赏
  • 举报
回复
可以用静态变量吧
stanlynet 2013-08-12
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:
LoadLibrary 后 有没有用 GetProcAddress 获取函数接口地址?
用了 pFun=GetProcAddress(hModule,"ReceiveData"); typedef void (*FUN)(DWORD dwData); FUN fun=(FUN)pFun; fun(300);
stanlynet 2013-08-12
  • 打赏
  • 举报
回复
引用 2 楼 hdg3707 的回复:
DWORD dwData1; 改成: extern "C" __declspec( dllexport ) DWORD dwData1;试试
能导出变量?编译通不过啊, Linking... Creating library Release/TestDll.lib and object Release/TestDll.exp TestDll.obj : error LNK2001: unresolved external symbol _dwData1 Release/TestDll.dll : fatal error LNK1120: 1 unresolved externals 执行 link.exe 时出错.
stanlynet 2013-08-12
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
可以用静态变量吧
试了下,静态变量也没起作用,

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧