全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:813
推到 Plurk!
推到 Facebook!

Console Applications可呼叫DLL嗎?

尚未結案
alice
初階會員


發表:41
回覆:49
積分:28
註冊:2002-04-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-18 10:07:45 IP:211.75.xxx.xxx 未訂閱
想撰寫一支沒有Form或可背景執行, 不會影響畫面的程式, 且執行就結束離開. 試採用Console Applications的方式, 程式有 external DLL , 編譯時有 Invalid complier directive 'EXTERNAL'的錯誤, 難道無法呼叫 DLL的檔案嗎?
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-18 10:23:00 IP:147.8.xxx.xxx 未訂閱
Console application can call dll. Could you post your code here for others to take a look at?
alice
初階會員


發表:41
回覆:49
積分:28
註冊:2002-04-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-18 10:49:15 IP:211.75.xxx.xxx 未訂閱
我將程式簡化如下:
引言: program Project3; {$APPTYPE CONSOLE} uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ColorBitBtn, MyLabs, DBXpress, FMTBcd, DB, SqlExpr, IniFiles,DateUtils,StrUtils, ComCtrls, winsock; procedure ExeTran(); function TestDll(FileName:string):integer;external 'TEST.dll'; var FName:string; procedure ExeTran(); begin FName:='TEST.TXT'; TestDll(FName); end; begin ExeTran(); end.
麻煩囉!!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-18 14:08:25 IP:147.8.xxx.xxx 未訂閱
Your declaration looks fine  class="code">library tdll; uses ShareMem; function TestDll(FileName: string): integer; begin Result := 10; end; {$R *.res} exports TestDll; begin end. ============================================================ program test; {$APPTYPE CONSOLE} uses ShareMem, SysUtils; function TestDll(FileName: string): integer; external 'tDll.dll'; begin writeln(IntToStr(TestDll('aaaaa'))); end. P.S. If you want to use string, you may want to use the ShareMem unit in both projects.
系統時間:2024-06-30 3:33:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!