gpt4 book ai didi

c# - 如何从 csharp 程序将字符串传递给 vc++ dll

转载 作者:行者123 更新时间:2023-11-30 19:48:43 24 4
gpt4 key购买 nike

我们想要将一个字符串从 csharp 程序传递到 vc++。

以下是代码:在 C# 中

    [DllImport("ConsoleApplication2.dll")]
public static extern int main_c(StringBuilder IpAddr, int p);
public string[] tcp()
{
StringBuilder buffer = new StringBuilder("192.168.1.100");
int i = main_c(buffer, 34318);

在vc++中

extern __declspec( dllexport ) int main_c(char *peer,int port)

{

这会产生错误,因为“:main_c' 使堆栈不平衡”。如何做到这一点?

最佳答案

就我个人而言,我会尝试这样声明:

[DllImport("ConsoleApplication2.dll", CallingConvention=CallingConvention.Cdecl)]
public static extern int main_c([MarshalAs(UnmanagedType.LPStr)] String IpAddr, int port);

并在 VC++ 函数中声明指针 const,因为它不应该写在那里。您甚至不需要 StringBuilder。

关于c# - 如何从 csharp 程序将字符串传递给 vc++ dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17342074/

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