求救~ 如何用DELPHI 宣告呼叫C寫的DLL~~ |
尚未結案
|
brianwung
一般會員 發表:18 回覆:22 積分:8 註冊:2002-06-12 發送簡訊給我 |
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
|
brianwung
一般會員 發表:18 回覆:22 積分:8 註冊:2002-06-12 發送簡訊給我 |
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
|
brianwung
一般會員 發表:18 回覆:22 積分:8 註冊:2002-06-12 發送簡訊給我 |
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
|
brianwung
一般會員 發表:18 回覆:22 積分:8 註冊:2002-06-12 發送簡訊給我 |
實在是試不出來,將原文貼出來請幫忙寫成delphi,感激不盡丫。 1. 開啟 XXXXX 檔案
2. 將檔案內的資料讀進並存放在一個字串陣列內
3. 呼叫 CR_ChangeUserIdPin(),
前四個參數為傳入(in),分別是原註冊資料,原註冊資料長度,舊密碼,新密碼;
後兩個參數為傳出(out),分別是新註冊資料,新註冊資料長度
4. 將新註冊資料寫入XXXXX 檔 Function Name : CR_ChangeUserIdPin
Function Define :
int DLL_IMPORT_EXPORT CR_ChangeUserIdPin(
unsigned char *oldFile, /* IN –原註冊資料*/
int lenOldFile, /* IN –原註冊資料長度*/
char *oldPin, /* IN –舊密碼*/
char *newPin, /* IN –新密碼*/
unsigned char **newFile, /* R dynamic –新註冊資料*/
int *lenNewFile, /* R –新註冊資料長度*/
);
IN 表示傳入參數, R 表是傳出參數
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
// 宣告 function CR_ChangeUserIdPin( oldFile: Pointer; lenOldFile: integer; oldPin: PChar; newPin: PChar; var newFile: Pointer; var lenNewFile: integer): integer; stdcall; external 'DLLNAME'; // 範例 var oldPin, newPin: string; lenOldFile, lenNewFile: integer; oldFile: array [0..XXX] of char; newFile: Pointer; begin ... oldPin := 'OLD Pass'; newPin := 'NEW Pass'; ... // 因為沒有這個 function 的詳細定義 // 我只能推斷說,newFile 是由 DLL 負責配置記憶體的,所以才傳 ** 過去 // 所以,我就在 Delphi 中改成 var XX: Pointer CR_ChangeUserIdPin( @ oldFile, lenOldFile, PChar(oldPin), PChar(newPin), newFile, lenNewFile); end;我只能猜大概是這樣用 Access violation 大柢是指標出了問題 這個部份多留意就行了 |
brianwung
一般會員 發表:18 回覆:22 積分:8 註冊:2002-06-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |