应用程序端传递过来的参数不能在导出函数外用吗?
我想通过应用程序端传递参数到DLL中(DLL中有导出函数),再通过传递过来的函数参数来改变DLL中的某个全局变量的值,但是现在却出现了这样现象,将参数赋值给全局变量后,全局变量还是原来的初值。而在导出函数的内部通过验证可以确定传递过来的参数是正确的(通过MessageBox来验证)。这是怎么回事?
我是这样定义导出函数的(头文件中):
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllimport) int __stdcall MibArrayUpdate(
IN AsnInteger ChasisNum,
IN AsnInteger CardNum,
IN AsnInteger CardStatus,
IN AsnInteger CardStaValue
);
#ifdef __cplusplus
}
#endif
测试时参数前加不加IN结果都一样,用什么参数类型也一样。
各位高手给解释解释这到底是什么原因呀!是内存中地址映射错了吗?
还有一点提醒:DLL源文件是用C写的,应用程序端是VC下的WIN32 Console Application
。