該dll在c++里面可以成功調用。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調用程序:import ctypesfiledll=ctypes.WinDLL("file_rw_dll.dll")print(filedll.add(1,2))在c++中調用該生成的dll沒有問題,python中調用出現(xiàn)“AttributeError: function 'add' not found”求教!
1 回答

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