首页 新闻 搜索 专区 学院

如何给delphi的dll函数提供工作路径?

0
悬赏园豆:30 [已解决问题] 解决于 2016-05-11 00:01

我有一如下的程序:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  function RunDllFuc(a,b:Double):Double;cdecl;external'Test_DLL.DLL';
 
   implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c:Double;
begin
  c:=RunDllFuc(a,b);
end;

end.

其中RunDllFun(a,b)是Test_DLL.DLL中的一个函数,RunDllFun(a,b)执行时要用到大量的数据,我将这些数据存放在与Test_DLL.DLL不同的路径下,请问,应该怎样给RunDLLFun提供工作路径?

向北方的主页 向北方 | 初学一级 | 园豆:154
提问于:2016-04-30 23:32
< >
分享
最佳答案
0

绝对路径,如c:\\demo\\

或者相对路径,首先使用API可以获取当前的运行目录,然后相对这个设置就行

收获园豆:30
2012 | 专家六级 |园豆:19163 | 2016-05-10 08:53

虽然你回答得不是很清楚,但我根据你的提示,解决了这个问题,辛苦了,谢谢

向北方 | 园豆:154 (初学一级) | 2016-05-11 00:01
其他回答(1)
0

Function GetDllPath:string;
var
ModuleName:string;
begin
SetLength(ModuleName, 255);
//取得Dll自身路径
GetModuleFileName(HInstance, PChar(ModuleName), Length(ModuleName));
Result := PChar(ModuleName);
end;

姜乂元 | 园豆:202 (菜鸟二级) | 2019-07-16 22:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册