gpt4 book ai didi

c# - 将字符串作为 PChar 从 CSharp 传递到 Delphi DLL

转载 作者:太空狗 更新时间:2023-10-30 01:10:40 24 4
gpt4 key购买 nike

我正在尝试将字符串从 C# 传递到 Delphi 构建的 DLL。Delphi DLL 需要 PChar。

这里是Delphi导出

procedure DLL_Message(Location:PChar;AIntValue :integer);stdcall;
external 'DLLTest.dll';

C# import(我最后试了一个,有string, char* ref string ...)

[DllImport(
"DLLTest.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi,
EntryPoint = "DLL_Message"
)]
public static extern void DLL_Message(IntPtr Location, int AIntValue);

我以任何方式获取访问值访问冲突。

有什么解决方案可以在 C# 中将字符串值作为 PChar 传递吗?

最佳答案

尝试使用 MarshalAs 属性,它允许您控制所使用的 native 类型。

可以在 MSDN 中找到类型列表:

http://msdn.microsoft.com/de-de/library/system.runtime.interopservices.unmanagedtype.aspx

DllImport(
"DLLTest.dll",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi,
EntryPoint = "DLL_Message"
)]
public static extern void DLL_Message(
[MarshalAs(UnmanagedType.LPStr)] string Location,
int AIntValue
);

关于c# - 将字符串作为 PChar 从 CSharp 传递到 Delphi DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4151772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com