該dll在c++里面可以成功調(diào)用。dll的.h:#pragma once#ifdef FILE_RW_DLL_EXPORTS#define FILE_RW_DLL_API extern "C"__declspec(dllexport)#else#define FILE_RW_DLL_API extern "C"__declspec(dllimport)#endif#include "stdafx.h"double __stdcall add(double a, double b);dll的.cpp:#include "stdafx.h"#include "file_rw_dll.h"double __stdcall add(double a, double b){return (a+b);}python調(diào)用程序:import ctypesfiledll=ctypes.WinDLL("file_rw_dll.dll")print(filedll.add(1,2))在c++中調(diào)用該生成的dll沒有問題,python中調(diào)用出現(xiàn)“AttributeError: function 'add' not found”求教!
1 回答

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
在函數(shù)聲明上沒有使用
extern "C"__declspec(dllexport)
也就是你定義的FILE_RW_DLL_API
如果不做這樣的聲明,函數(shù)就按照c++的方式進(jìn)行編譯,在python中不能訪問,但在c++中可以訪問。
添加回答
舉報(bào)
0/150
提交
取消