[c#]如何从一个 csharp 方案将字符串传递给 vc + + dll

标签: dll C#
发布时间: 2013/12/8 6:21:39
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我们想要从 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' 已堆栈失去了平衡."如何做到这一点?

解决方法 1:

存入,我尝试将它声明这样:

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

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

赞助商