从类函数内部调用 DLL 的外部函数

Calling a DLL's extern function from inside a class function

本文关键字:外部 函数 DLL 调用 类函数 内部      更新时间:2023-10-16

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

的函数
   //example.h  
   _EXTERN S16BIT _DECL function();

函数是从DLL外部的。在example。cpp文件中,我有一个类myclass,我想从类classfunc()的成员函数中调用function(),因此,

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

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

编辑:_EXTERN被定义为空;

   #define _EXTERN

_DECL被定义为;

   #define _DECL __stdcall

S16BIT 2 bytes

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

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

extern "C" __declspec( dllexport ) signed short function();