首先用visual studio寫個dll。
          // TestDll.cpp : Defines the entry point for the DLL application.
          //

          #include "stdafx.h"
          #include <iostream>
          using namespace std;

          #ifdef _MANAGED
          #pragma managed(push, off)
          #endif

          #ifdef __cplusplus
          #define EXPORT extern "C"__declspec(dllexport)
          #else
          #define EXPORT __declspec(dllexport)
          #endif
          EXPORT int HelloWorld()
          {
          ?cout <<"hello world" <<endl;
          ?return 0;
          }


          BOOL APIENTRY DllMain( HMODULE hModule,
          ?????????????????????? DWORD? ul_reason_for_call,
          ?????????????????????? LPVOID lpReserved
          ????? )
          {
          ??? return TRUE;
          }

          #ifdef _MANAGED
          #pragma managed(pop)
          #endif

          然后用C++ 來調用(當然這里可選)
          // CallDll.cpp : Defines the entry point for the console application.
          //

          #include "stdafx.h"
          #include <windows.h>

          int _tmain(int argc, _TCHAR* argv[])
          {
          ?HMODULE hDll = ::LoadLibrary(TEXT("TestDll.dll"));
          ?typedef int pHelloWorld();
          ?pHelloWorld *pHello = (pHelloWorld *)::GetProcAddress(hDll, "HelloWorld");
          ?pHello();
          ?return 0;
          }

          而python的調用也很簡單:

          from ctypes import *
          fileName="TestDll.dll"
          func=cdll.LoadLibrary(fileName)
          #print func.HelloWorld()
          func.HelloWorld()

          如果有參數記得轉換成C類型的。比如用c_int()
          而參數如果是指針類型用 byref 轉換。

          posted on 2008-04-15 23:08 -274°C 閱讀(2630) 評論(1)  編輯  收藏 所屬分類: python


          FeedBack:
          # re: python 調用dll
          2008-08-06 16:52 | UMU
          Mark  回復  更多評論
            

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網站

          關注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 916102
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 桐乡市| 广水市| 左权县| 栖霞市| 侯马市| 治多县| 台江县| 鄂伦春自治旗| 五大连池市| 永清县| 汝阳县| 榆树市| 连云港市| 民乐县| 瑞丽市| 宜川县| 绥芬河市| 泰州市| 锡林郭勒盟| 达拉特旗| 政和县| 晋州市| 眉山市| 微山县| 大兴区| 六枝特区| 奉新县| 丰台区| 崇信县| 昭平县| 西贡区| 鱼台县| 通州区| 青阳县| 于田县| 汶上县| 连州市| 金堂县| 格尔木市| 开封市| 莱芜市|