C语言的dll 转成C#调用?

C代码如下:

typedef void* H_SERVER;

RST_CSDK_API int RSTC_Login(IN const char* pszIP, IN short usPort, IN const char* pszUsername,
IN const char* pszPassword, IN const char* pszDomain, OUT H_SERVER *hServer);

我的C#调用代码
[DllImport("RST_CSDK.dll", CharSet = CharSet.Ansi)]
public static extern RSTErr RSTC_Login(string pszIP, Int16 usPort, string pszUsername, string pszPassword, string pszDomain, out IntPtr hServer);

一直报错

第1个回答  2020-11-21
编写C程序如下:
#include "stdio.h"
__declspec(dllexport) void MyFun()
{
printf("this is a dll\n");
}

保存,取名为My.C

运行 VS 命令提示,Cl /c 路径/My.c
运行以后会生成 My.Obj,默认在vs安装文件夹的VC目录下
再运行 link/dll 路径/My.obj
在同一个目录会生成My.dll

在C#中调用:
将dll复制到bin目录,编写如下C#代码:
static void Main(string[] args)
{
MyFun();
}
[DllImport("My.dll")]
public extern static void MyFun();
相似回答