c#调用C++ dll 的方法:
1.添加 using System.Runtime.InteropServices;
2.将dll 放到运行程序的根目录下
3.c++中可识别的字符为:UTF8,在传输字符的时候,需要先转换为UTF8,然后再传输,要不然中文会识别不了,同样在返回数据的时候,也需要将UTF8转换为Default格式,否则中文为乱码
4.载入的时候判断一下,只需要载入一次就可以,第二次直接发送数据即可
5.如果中途有断掉连接,则需要关闭连接,重新载入即可
核心代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace CSharpDemo
{
class CSharpDemo
{
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
public delegate void WriteToConsoleCallback(IntPtr str);
[DllImport("kernel32.dll", EntryPoint = "LoadLibrary", SetLastError = true)]
public static extern IntPtr LoadLibrary(
[MarshalAs(UnmanagedType.LPStr)] string lpLibFileName);
[DllImport("kernel32.dll", EntryPoint = "GetProcAddress",