線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1064
推到 Plurk!
推到 Facebook!

VB使用Delphi做的Dll檔

尚未結案
水中鳥
一般會員


發表:4
回覆:2
積分:1
註冊:2009-03-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-15 18:28:10 IP:59.120.xxx.xxx 訂閱
請問一下我有在delphi中作一個標準的dll,但是在VB中呼叫所做的函數卻出現找不到"XXX.dll"檔案,我有將這個dll放在我VB的路徑中了(放到c:\windows\system32或者直接給他路徑就正常)~~以下是我函數部分代碼與VB使用的呼叫的方式

[code delphi]
function InstallH(lpHwnd:HWND):Longint;stdcall;export;
begin
.....
end;
exports
InstallH;
[/code]

[code vb]
Public Declare Function InstallH Lib "xxx.dll" (ByVal lpHwnd As Long) As Long
[/code]

另外再請教一下,我要如何在遊戲中呼出我的視窗,我已經用"SetWindowsHookEx"勾住遊戲了,但是呼出的視窗卻不能在遊戲中顯示,而是顯示在桌面...一樣我附上部分程式碼,煩請專家指導一下,做好是有相關資料或程式可以參考的


[code delphi]
case wParam of VK_F12:
begin
if form1 <> nil then
begin
if form1.Visible = true then
Form1.Hide
else
Form1.Show;
end
else
Form1:=TForm1.Create(Application);
end;
[/code]

謝謝

關於第二個問題我已經大概知道了~~要用"CreateParented"建立一個TForm,但是卻有另一個問題產生了~~
就是我用"CreateThread"建立線程怎麼開啟視窗後會一閃而過??而沒有像一般"Form1.Show;"停留在畫面上勒??

編輯記錄
水中鳥 重新編輯於 2009-03-16 16:35:34, 註解 無‧
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-16 15:46:58 IP:59.112.xxx.xxx 訂閱
既然放到system32 下可以正常, 那一定是路徑問題, 可以在vb那邊 app.path 確認執行當時路徑在哪,因為印象中vb 用過chdir以後,程式路徑會變
不然試試看註冊能不能解決,在cmd 裏用 regsvr32 xxx.dll 向系統註冊(regsvr32 /u xxx.dll 可以反註冊)
------
額有朝天骨,眼中有靈光
水中鳥
一般會員


發表:4
回覆:2
積分:1
註冊:2009-03-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-16 16:37:30 IP:59.120.xxx.xxx 訂閱

===================引 用 小傑克 文 章===================
既然放到system32 下可以正常, 那一定是路徑問題, 可以在vb那邊 app.path 確認執行當時路徑在哪,因為印象中vb 用過chdir以後,程式路徑會變
不然試試看註冊能不能解決,在cmd 裏用 regsvr32 xxx.dll 向系統註冊(regsvr32 /u xxx.dll 可以反註冊)


我很確定我的app.path 跟DLL是同一個目錄~~
謝謝
系統時間:2024-05-14 8:25:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!