1

我想从 C# 调用方法“Talk”。我浏览了其他相关帖子,但对我没有帮助。

托管程序.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();
        }
    }
}

非托管.h

#ifndef UNMANAGED_H
#define UNMANAGED_H
extern "C"
{
__declspec(dllexport) int Talk();
}
#endif

非托管.cpp

#include "stdafx.h"
#include "conio.h"
#include "Unmanaged.h"

int Talk()
{
    int x=10,y=5;
    return (x+y);
}
4

1 回答 1

2

您需要将库部署为DLL. DllImport仅适用于使用 P/Ivoke 的 .dll 库。

在 VS 中创建 DLL 时,选择 Win32 下的Console Application并将单选按钮设置为“Dynamic-Link-Library (DLL)”。

然后照你做的。有关一些信息,请参见此处

于 2013-02-28T12:24:11.270 回答