如何将Delphi代码转换为C#?它需要一个array of Byte,但我不确定C#的等价物是什么.我的尝试不起作用并抛出像AccessViolationException之类的异常.
德尔福:
function SetLevel(a: array of byte): boolean; stdcall; external 'DMX510.dll';
Run Code Online (Sandbox Code Playgroud)
C#:
[DllImport("DMX510.DLL")]
public static extern Boolean SetLevel(Byte[] bytearray);
Byte[] byteArray = new Byte[5];
byteArray[1] = 75;
SetLevel(byteArray);
Run Code Online (Sandbox Code Playgroud) 我怎样才能在c#中使用这个dll函数?我尝试了以下但我得到错误."外部组件引发的异常."
我第一次用C#和Delphi做这个PInvoke的东西.
function HTTPGET(location:string):string; stdcall;
var
HTTP:TIdHttp;
begin
HTTP := TidHttp.Create(nil);
try
result := HTTP.Get(location);
finally
FreeAndNil(HTTP);
end;
end;
exports
HTTPGET;
begin
end.
namespace Test
{
class Program
{
[DllImport("project1.dll")]
public static extern string HTTPGET(string location);
static void Main(string[] args)
{
Console.WriteLine(HTTPGET("http://www.reuters.com/"));
}
}
}
Run Code Online (Sandbox Code Playgroud)