Tôi đã tạo một tệp DLL trong VS2013 bằng cách sử dụng Thư viện tệp/Dự án mới/Lớp. Sau đó tôi đã cố gắng tải nó động trong Delphi. Nhưng Delphiis trả lại NIL
cho thủ tục GetProcAddress
.Cách tạo DLL trong C# và gọi trong Delphi XE6
C# & Mã Delphi của tôi trông giống như những gì tôi đã đăng bên dưới. Trong mã GetProcAddress
đang trả lại NIL
. Xin vui lòng cho biết nếu tôi thiếu một cái gì đó.
C# Mã
using System;
namespace TestDLL
{
public class Class1
{
public static string EchoString(string eString)
{
return eString;
}
}
}
Delphi Mã
Type
TEchoString = function (eString:string) : integer;stdcall;
function TForm1.EchoString(eString:string):integer;
begin
dllHandle := LoadLibrary('TestDLL.dll') ;
if dllHandle <> 0 then
begin
@EchoString := GetProcAddress(dllHandle, 'EchoString') ;
if Assigned (EchoString) then
EchoString(eString) //call the function
else
result := 0;
FreeLibrary(dllHandle) ;
end
else
begin
ShowMessage('dll not found ') ;
end;
end;
Tôi đã thay đổi mã theo đề xuất "không được quản lý chương trình". vẫn không có may mắn. – ary
Tôi không hiểu nhận xét đó. Tôi đã khôi phục bản chỉnh sửa của bạn. Xin đừng thay đổi câu hỏi. Bằng mọi cách, hãy thêm nhiều hơn để yêu cầu làm rõ, nhưng đừng thay đổi hoàn toàn làm mất hiệu lực lịch sử. –
Ngoài ra, sẽ tốt hơn nếu bạn không đăng mã giả mạo. Mã C# là giả mạo. –