C++ __declspec(dllimport)c结构:访问冲突
一段时间以来,我一直试图找到以下问题的解决方案,但没有成功:C++ __declspec(dllimport)c结构:访问冲突,c++,access-violation,declspec,C++,Access Violation,Declspec,一段时间以来,我一直试图找到以下问题的解决方案,但没有成功: 我有一个“c”dll,其中定义了以下结构: 文件:myDll.h #ifdef EXPORTS #define EXPORT __declspec(dllexport) #else #define EXPORT __declspec(dllimport) #endif EXPORT struct my_test { unsigned char dum0000001[2144];
#ifdef EXPORTS
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif
EXPORT struct my_test
{
unsigned char dum0000001[2144];
int test1[32];
unsigned char test2[32];
} test;
< >我的C++可执行文件中包含MyDL.h文件,并尝试修改TEST1和TEST2:
extern "C"
{
#include "myDll.h"
}
int main(int argc, char** argv)
{
test.test1[0] = 0;
test.test2[0] = 0;
}
程序正确通过:
test.test1[0] = 0;
但有一次
test.test2[0] = 0;
到达时,我得到以下异常:
First-chance exception at 0x00401028 in test.exe: 0xC0000005: Access violation writing location 0x1000c030.
我真的不知道怎么了。也许有人能给我一个建议
提前谢谢。您的
my_test
实例在哪里?您好,它是从DLL导入的0x1000c030地址与结构声明不匹配。请不要给我们看假的。如果它不是假的,那么与DLL中的实际结构不匹配就是明显的故障模式。