在传递 String-like 参数的 DLL 中调用过程
Calling a procedure in a DLL passing String-like parameters
我有一个包含表单的 DLL。
我有一个调用此 DLL 的应用程序。
我试图通过应用程序的调用在 DLL 内的表单中放置一个标题。
以下是 DLL 创建表单的方式:
procedure CallEmployee(Title: PWideChar); export; stdcall;
begin
Frm_Standard := TFrm_Standard.Create(nil,DA,[],[]); //I have a modified Constructor
Frm_Standard.Caption := Title;
这是应用程序中 DLL 过程的声明:
procedure CallEmployee(Title: PWideChar); external 'Employee.dll';
这就是我现在打电话的方式:
//I wanna put a title according to an specific test (Not this one, obviously)
if 2 = 2 then
CallEmployee(PWideChar('This Title'));
我正在使用 PWideChar,因为我发现 String 在这种情况下不起作用。
一定是我遗漏了一些小东西,但我研究了但找不到解决方案。
我为函数找到了一些东西,但是因为我不需要 return 任何参数,所以我使用了一个简单的过程。或者这可能是我问题的根源?
我正在使用 Delphi XE7。
很抱歉,如果这个问题无关紧要或已经有人问过,但我找不到。如果它已经有答案,请告诉我,我会删除这个问题。
啊,其他都完美,程序调用了Form,显示正确,但是标题总是这样:
您错过了调用约定。替换:
procedure CallEmployee(Title: PWideChar); external 'Employee.dll';
和
procedure CallEmployee(Title: PWideChar); stdcall; external 'Employee.dll';
我有一个包含表单的 DLL。 我有一个调用此 DLL 的应用程序。 我试图通过应用程序的调用在 DLL 内的表单中放置一个标题。
以下是 DLL 创建表单的方式:
procedure CallEmployee(Title: PWideChar); export; stdcall;
begin
Frm_Standard := TFrm_Standard.Create(nil,DA,[],[]); //I have a modified Constructor
Frm_Standard.Caption := Title;
这是应用程序中 DLL 过程的声明:
procedure CallEmployee(Title: PWideChar); external 'Employee.dll';
这就是我现在打电话的方式:
//I wanna put a title according to an specific test (Not this one, obviously)
if 2 = 2 then
CallEmployee(PWideChar('This Title'));
我正在使用 PWideChar,因为我发现 String 在这种情况下不起作用。
一定是我遗漏了一些小东西,但我研究了但找不到解决方案。
我为函数找到了一些东西,但是因为我不需要 return 任何参数,所以我使用了一个简单的过程。或者这可能是我问题的根源?
我正在使用 Delphi XE7。
很抱歉,如果这个问题无关紧要或已经有人问过,但我找不到。如果它已经有答案,请告诉我,我会删除这个问题。
啊,其他都完美,程序调用了Form,显示正确,但是标题总是这样:
您错过了调用约定。替换:
procedure CallEmployee(Title: PWideChar); external 'Employee.dll';
和
procedure CallEmployee(Title: PWideChar); stdcall; external 'Employee.dll';