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];

一段时间以来,我一直试图找到以下问题的解决方案,但没有成功:

  • 我有一个“c”dll,其中定义了以下结构:
  • 文件:myDll.h

    #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中的实际结构不匹配就是明显的故障模式。