S
speed780
Guest
Hello,
I have a dll created with delphi language (Borland Delphi 7) which thus contains functions in delphi which I would like to use in C# with Visual Studio 2017.
I want to use for example the GENERATE_FILE function contained in test.dll.
Delphi code :
procedure GENERATE_FILE(Path, Input_File : AnsiString); stdcall;
procedure GENERATE_FILE(Path, Input_File : AnsiString); stdcall;
var
begin
…
GENERATE_CALC(Path_And_File, CRC32, Total, err);
…
end;
In C#, I want to use the function GENERATE_FILE contained in test.dll but what is the type of the parameters Path and Input_File in C# ?
Below is an example of C# code I made to use test.dll in C#. I set string as a type for parameters of the function GENERATE_FILE.
namespace AppTest
{
Public class Program
{
[DllImport("test.dll", CharSet = CharSet.Ansi)]
public static extern bool CREATE_FILE(string pathDirectory, string filename);
static void Main(string[] args)
{
GENERATE_FILE(@"C:\Users", "file.txt");
}
}
}
I added the test.dll in Visual Studio by right clicking on the project then add an existing element, then, in the properties of the test.dll, I put "Content" in Generation action and I put "Always copy "(output directory). When I run the solution, I have the test.dll in bin\Debug.
But when I test this program, I get the following error at the line that contains:
GENERATE_FILE(@"C:\Users", "file.txt");
System.DllNotFoundException: 'Unable to load DLL' test.dll ': The specified module could not be found. (Exception from HRESULT: 0x8007007E) '
How to solve this problem ?
I think the issue is about the type of parameters in the function GENERATE_FILE. What are the type equivalents between delphi and C# for the function GENERATE_FILE ?
Thank you for your help.
Continue reading...
I have a dll created with delphi language (Borland Delphi 7) which thus contains functions in delphi which I would like to use in C# with Visual Studio 2017.
I want to use for example the GENERATE_FILE function contained in test.dll.
Delphi code :
procedure GENERATE_FILE(Path, Input_File : AnsiString); stdcall;
procedure GENERATE_FILE(Path, Input_File : AnsiString); stdcall;
var
begin
…
GENERATE_CALC(Path_And_File, CRC32, Total, err);
…
end;
In C#, I want to use the function GENERATE_FILE contained in test.dll but what is the type of the parameters Path and Input_File in C# ?
Below is an example of C# code I made to use test.dll in C#. I set string as a type for parameters of the function GENERATE_FILE.
namespace AppTest
{
Public class Program
{
[DllImport("test.dll", CharSet = CharSet.Ansi)]
public static extern bool CREATE_FILE(string pathDirectory, string filename);
static void Main(string[] args)
{
GENERATE_FILE(@"C:\Users", "file.txt");
}
}
}
I added the test.dll in Visual Studio by right clicking on the project then add an existing element, then, in the properties of the test.dll, I put "Content" in Generation action and I put "Always copy "(output directory). When I run the solution, I have the test.dll in bin\Debug.
But when I test this program, I get the following error at the line that contains:
GENERATE_FILE(@"C:\Users", "file.txt");
System.DllNotFoundException: 'Unable to load DLL' test.dll ': The specified module could not be found. (Exception from HRESULT: 0x8007007E) '
How to solve this problem ?
I think the issue is about the type of parameters in the function GENERATE_FILE. What are the type equivalents between delphi and C# for the function GENERATE_FILE ?
Thank you for your help.
Continue reading...