python调用 C语言DLL问题
VS2010 想写个简单的C函数 生成dll 让python调用
VS2010 代码
#include <stdio.h>
_declspec(dllexport) int add(int a, int b)
{
return a+b;
}
python 代码
from ctypes import *
dll=CDLL("add.dll")
print dll.add(2,3)
提示说 AttributeError: function 'add' not found
问下是dll写的有问题 不符合python 还是python代码问题
调用的dll路径如何设置
[解决办法]
vc默认是用c++方式编译,函数名会加很多装饰符号,代码里加extern "C"声明一下...
[解决办法]
楼上正解,C++把add的名字给修饰了
写PYTHON的扩展dll,建议还是用原生的C好些
[解决办法]
// test_dll.cpp : Defines the entry point for the DLL application.//#include "stdafx.h"#include <stdio.h>BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ return TRUE;}extern "C" _declspec(dllexport) void print_sum(unsigned long ulNum) { unsigned long i = 1; while (ulNum != 0) { printf("\nThe ulNum is: %u ", i); ulNum--; i++; }}