工具:VS2010 python2.7 (若使用的python是64位的,生成的dll也要使用x64)
系統(tǒng):win7pro 64bit
首先,dll工程的創(chuàng)建以及dll文件的生成:
new project-->win32 project-->next-->DLL,empty project-->finish
如果沒有選擇empty project,系統(tǒng)會自動創(chuàng)建幾個(gè)文件。其中,dllmain.cpp是DLL應(yīng)用程序的入口點(diǎn)。
添加Head Files(mydll.h),添加Source Files(mydll.cpp)
在頭文件中:
#ifndef LIB_H
#define LIB_H
extern "C" { _declspec(dllexport) int add(int* x, int y);};
#endif
在mydll.cpp中:
#include "mydll.h"
int add(int* x, int y)
{
int a = (*x);
a++;
(*x) = a;
return y;
}
ctrl+F7編譯之后沒有問題了,就build-->build mydll,生成了mydll.lib和mydll.dll。
/××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/
tips:
(
debug:調(diào)試版本,包含調(diào)試信息,不做任何優(yōu)化,便于程序員調(diào)試程序。
release:發(fā)布版本,在代碼量和運(yùn)行速度上都做了優(yōu)化,來使程序運(yùn)行速度更快,便于用戶使用。
)/××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/
python對dll里面函數(shù)的調(diào)用。
對于int×指針類型的int,要對in的參數(shù)做處理:
import ctypes
dlltest = ctypes.cdll.LoadLibrary('dlltest.dll')
a = ctypes.c_int(5)
print dlltest.add(ctypes.byref(a),4)
print a.value