当前位置:编程学习 > C#/ASP.NET >>

C++ api转为C#函数

short WINAPI Open(OUT HANDLE &hCom, IN char *com_port);
这个函数转换为C#可以调用的函数的正确写法是什么?

--------------------编程问答--------------------
[DllImport(@"ccc.dll", EntryPoint = "single_putin", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
        public extern static void single_putin(); 



晕  那你就改你的dll  把你要输出的以返回值的形式返回,在C#中得到值赋给你的字符串 

C++类似下面的代码 返回char *

#define LIBEXPORT_API extern "C" __declspec(dllexport)

char szBuffer[1024];

LIBEXPORT_API const char* WinLock()
{
 CSystemInfo sys;
 CString strTemp;
 sys.GetLogonUser(strTemp);
 sprintf(szBuffer,"%s",strTemp);
 return szBuffer;
}

C#调用
[DllImport(@"*.dll", EntryPoint = "WinLock", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
        public extern static string WinLock(); 
--------------------编程问答-------------------- [DllImport("xxxxxx.dll", CharSet = CharSet.Ansi)]
public static extern short Open(out IntPtr hCom, [MarshalAs(UnmanagedType.LPStr)] string com_port);
--------------------编程问答-------------------- 能不能写个简单的教程!再详细点。谢谢。 --------------------编程问答-------------------- 输出的参数需要加上 ref  --------------------编程问答--------------------
引用 1 楼 xx_mm 的回复:
C# code
[DllImport(@"ccc.dll", EntryPoint = "single_putin", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
        public extern static void single_putin(); 



晕  那你就改你……

很好很强大
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,