ocx调用dll中的函数,参数分别是数组指针Config*,长度Len。ocx是debug版时可把正确值传到dll中,release就不行,大家有没有遇见过?

ttnewday 2009-11-28 01:28:49
代码:

ocx的cpp中:

Config config[1000]; //在cpp中定义,是全局变量

BOOL CTextCtrl::init()
{
for(int i=0;i<1000;i++)
{
config[i].id = 1;
}
(*initdata)(config, 1000);
}

dll中:
extern"C" __declspec(dllexport) bool dll_initdata1(Config* config,int len)
{
for(i=0; i<len; i++)
{
打印 config[i].id 的值;
}
}

dll编译成release版本。
当ocx是debug时,打印 config[i].id 的值全是1,这个正确;当ocx是release时,打印的值没规律,第一个是1,跟着有些是0,有些大于1,可能是190、255等等,有些可能是1,这样就不正确了。

大家有没用遇见过这种情况啊?
...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
release下也可以调试 调试一下就知道了
设置方法如下:
VC6.0 中,菜单Project\Settings...选择Release状态C/C++卡片中:Category 选择 generalOptimizations 选择 Disable(Debug)Debug Info 选择 Program DatabaseLink 卡片中:Generate debug info
WaistCoat14 2009-11-28
  • 打赏
  • 举报
回复
你的ocx的Release工程设置是否设置为多线程编译选项没?

15,471

社区成员

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

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