2012-07-25 49 views
0

我試圖從一個DLL調用函數DLL使用Python

function oziRepositionWP(Number:integer;lat,lon:double):integer;stdcall; 

我寫的代碼在python

no = c_int(1) 
lat = c_double(34.00962) 
lon = c_double(74.80067) 

var =windll.OziAPI.oziRepositionWP(byref(no),byref(lat),byref(lon)) 

,但我得到的消息

var =windll.OziAPI.oziRepositionWP(byref(no),byref(lat),byref(lon)) 
ValueError: Procedure probably called with not enough arguments (8 bytes missing) 

我在哪裏我出錯請幫忙

回答

0

我不是當然,function oziRepositionWP(Number:integer;lat,lon:double):integer;stdcall;究竟是什麼語言。是德爾福嗎?無論如何,簽名看起來像它接受所有的價值論據;但是,在您的實際調用中,所有值均通過引用傳遞。假設你在32位工作,你傳遞3個指針值(每個32位=> 12字節),但函數需要一個整數(32位)和兩個雙精度(64位)=> 20個字節。

但是,這只是一個受過教育的猜測,只要OziAPI的實現語言沒有定義。

+0

你說得對,謝謝親愛的朋友 – user1182015 2012-07-25 14:02:20