我想从C#调用方法“Talk”。我浏览了其他相关帖子,但对我没有帮助。
Managed.Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace Managed
{
class Program
{
[DllImport("Unmanaged.exe", CallingConvention=CallingConvention.Cdecl,EntryPoint="Talk",CharSet=CharSet.Ansi)]
public static extern int Talk();
static void Main(string[] args)
{
int value=Talk();
}
}
}
Unmanaged.h
#ifndef UNMANAGED_H
#define UNMANAGED_H
extern "C"
{
__declspec(dllexport) int Talk();
}
#endif
Unmanaged.cpp
#include "stdafx.h"
#include "conio.h"
#include "Unmanaged.h"
int Talk()
{
int x=10,y=5;
return (x+y);
}
答案 0 :(得分:2)
您需要将您的库部署为DLL
。 DllImport
仅适用于使用P / Ivoke的.dll库。
在VS中创建DLL时,在Win32下选择控制台应用程序,并将单选按钮设置为“动态链接库(DLL)”。
然后像你一样做。有关详细信息,请参阅here。