檬檬君 发表于 2021-2-5 14:56:59

C++和matlab混合编程调用dll时出错


写一个小程序想调取C++的dll库,按照网上步骤进行,但是却出现问题,说未在库中找到函数,萌新一只,还望大佬们解答
非常感激
C++程序如下

xieglt 发表于 2021-2-5 17:34:22

调用dll,第一种方法是用编译预处理指定要链接的函数库文件 *.lib
比如说你要链接的库文件叫 a.lib
#pragma comment(lib,"a.lib")       //如果a.lib 不在当前目录下,要指定目录

如果你不知道该链接哪个lib,就用windows apiLoadLibraryA 和 GetProcAddress


        HMODULE module = LoadLibraryA("user32.dll");
        if(module != 0)
        {

                typedef int (WINAPI *FunMsgBox)(HWND,LPCSTR,LPCSTR,UINT);
                FunMsgBox fun = (FunMsgBox)GetProcAddress(module,"MessageBoxA");
                fun(0,"Hello,world",0,MB_OK);
        }

xieglt 发表于 2021-2-6 09:06:28

_declspec(dllexport)是导出函数,这是写 dll 时候用的。

如果要调用dll ,应该是_declspec(dllimport)   ,只要声明就行了,不要写函数体。
页: [1]
查看完整版本: C++和matlab混合编程调用dll时出错