调用DLL后函数失效的问题

overit 2000-03-13 02:49:00
我在写程序时遇到一个奇怪的问题:当我调用DLL中的函数后,sprintf失效。原程序如下:
int ll;
char tmp[20];
int (*Status_Printer)(int Time);
hInst= LoadLibrary("PrinterDll.dll");
(FARPROC &)Status_Printer=GetProcAddress(hInst,"Status_Printer");
ll=Status_Printer(10,ll);
sprintf(tmp,"%02d",ll);
Label1->Caption=tmp;
FreeLibrary(hInst);

在DLL中,函数如下:
int _stdcall Status_Printer(int Time)
{
return 10;
}
在。H文件中为:
extern "C" __declspec(dllexport) int _stdcall Status_Printer(int Time);
注:运行跟踪是可以看见调用DLL函数后ll为10,
但结果tmp中为00,或为乱码。
请赐教。谢谢

...全文
212 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2000-06-07
  • 打赏
  • 举报
回复
同样看法。
alexela 2000-06-06
  • 打赏
  • 举报
回复
以后设计程序时仔细点!
sirius 2000-03-17
  • 打赏
  • 举报
回复
参数应该保持一致
不然stack混乱,不错才怪
kxy 2000-03-13
  • 打赏
  • 举报
回复
ll=Status_Printer(10,ll);
传入2个参数是何意思?

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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