0

我有一个 example.cpp 文件,其中包含 Windows 中的 example.h。在文件 example.h 中有一个函数声明为

   //example.h  
   _EXTERN S16BIT _DECL function();

该函数是从 DLL 外部化的。在我的 example.cpp 文件中,我有一个类myclass,我想function()从类的成员函数中调用它,classfunc()所以,

  //example.cpp
  class myclass{
  public:
    classfunc(){
    function(); 
  }

 }   

它编译得很好,但是当它运行时它给了我一个访问冲突异常。我知道这是错误的,但不知道解决方案。

编辑:_EXTERN 被定义为空;

   #define _EXTERN

_DECL 定义为;

   #define _DECL __stdcall

S16BIT 2 字节

4

1 回答 1

0

您似乎想从 DLL 调用/使用纯 C 函数 function() 。请注意,这__stdcall是 C++ 函数的调用约定,您应该使用__cdecl

在你的 h 文件中声明你的函数是这样的

extern "C" __declspec( dllexport ) signed short function();
于 2013-03-15T18:14:21.670 回答