ocx调用dll中的函数,参数分别是数组指针Config*,长度Len。ocx是debug版时可把正确值传到dll中,release就不行,大家有没有遇见过?
代码:
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,这样就不正确了。
大家有没用遇见过这种情况啊?