C#怎么调用C++函数

来源:百度知道 编辑:UC知道 时间:2024/07/04 15:26:24
我现在有个函数是C++写的(别人写的,很复杂,都是些指针),我想在我的C#程序里调用这个函数,要怎么做(怎么把参数传进去,把结果传出来)
具体点啊
比如我C++有个函数 void single_putin(int b[][100],int n);在ccc.dll里,那么该怎么调用他呢?
还有函数里面本来是用cout<<***;输出的,怎么让他保存到我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();

楼主这个任务很难完成,第一库函数不同,你把这个dll文件引用了还会出现其他错误,一般都会出现找不到其他dll的错误,除非那个函数没有引用c++库函数等内容,劝楼主一句,这个错误不是楼主能解决的,要熟悉c#和c++同时熟悉那个函数的人才有望搞的定
不然还是自己改写一个吧

新建一个项目在你的解决方案中,引用这个dll(这时需要d