C# 调用 C++编译的dll中的函数的问题

利用g++编译命令编译了如下的代码:#include<iostream>usingstd::cout;usingstd::endl;#defineCPP_API__dec... 利用g++编译命令编译了如下的代码:
#include <iostream>
using std::cout;
using std::endl;

#define CPP_API __declspec(dllexport)
extern "C" CPP_API void Prt();

extern "C" CPP_API void Prt()
{
cout<<"Hello World!"<<endl;
}

将其编译为HelloWorld.dll之后,想在C#的环境中调用这个dll中的Prt()函数:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace unmanagedDllTest
{
class Extern
{
[DllImport(@"F:\code\C#\interOP\unmanagedDllTest\DLL\HelloWorld.dll", EntryPoint = "Prt", CallingConvention = CallingConvention.Cdecl)]
public extern static void Prt();
}
}

然后在Main方法中调用Extern.Prt(),但是控制台界面并不显示结果,这是为什么?……求高手帮帮忙
展开
 我来答
仁心仁术bi
推荐于2016-08-24 · TA获得超过144个赞
知道小有建树答主
回答量:252
采纳率:50%
帮助的人:57.8万
展开全部
你的方法返回值是空,应该不能直接在import 的方法里向控制台输出

你可以 extern "C" CPP_API string Prt() {return “Hello World”;}

然后在main 方法里,直接console.Write(Prt())
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式