0

Windows に example.h を含む example.cpp ファイルがあります。ファイル example.h には、次のように宣言された関数があります。

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

関数は DLL から外部化されます。私のexample.cppファイルには、クラスのメンバー関数からmyclass呼び出したいクラスがあるので、function()classfunc()

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

 }   

コンパイルはうまくいきますが、実行するとアクセス違反の例外が発生します。私はそれが間違っていることを知っていますが、解決策を知りません。

EDITED: _EXTERN は空として定義されています。

   #define _EXTERN

_DECL は次のように定義されています。

   #define _DECL __stdcall

S16BIT 2バイト

4

1 に答える 1

0

純粋な C 関数 function() を DLL から呼び出し/消費したいようです。__stdcallは C++ 関数の呼び出し規約であることに注意してください。使用する必要があります。__cdecl

hファイルで、関数を次のように宣言します

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