繁体   English   中英

在本机 C++ 项目中导入 C# dll 库

[英]Importing C# dll library within native C++ Project

我正在尝试将 C# dll 库包含到本机 C++ 控制台应用程序中。 我正在使用这篇文章: https : //support.microsoft.com/en-us/kb/828736#bookmark-7

但是,这篇文章是为 Visual Studio 2015 编写的,我使用的是 Visual Studio 2015。

首先,我在 Stackoverflow 上检查了几个答案,但这些问题都不是我正在寻找的。

最接近我的问题在这里: C# library to native C++ application

因此,我创建了一个 C# 库项目,其中包含以下代码:

namespace Testing_Library
{

    // Interface declaration
    public interface iCalculator
    {
        int Add(int number1, int number2);
    }

    public class ManagedClass:iCalculator
    {
        public int Add(int number1, int number2)
        {
            return number1 + number2;
        }
    }
}

然后我将项目编译为dll文件,然后我通过RegAsm.exe注册了dll文件。 现在我有两个输出文件:

测试库.dll

Testing_Library.tlb

我还创建了本机 C++ Windows 控制台应用程序项目。 在这个项目中,我有一个 .cpp 文件,其中包含以下代码:

// Import the type library.
#import "..\Testing_Library\bin\Debug\Testing_Library.tlb" raw_interfaces_only

using namespace std;
using namespace Testing_Library;

void main()
{
    // Initialize COM.
    HRESULT hr = CoInitialize(NULL);

    // Create the interface pointer.
    iCalculatorPtr pICalc(__uuidof(ManagedClass));

    long lResult = 0;

    // Call the Add method.
    pICalc->Add(5, 10, &lResult);

    wprintf(L"The result is %d", lResult);

    // Uninitialize COM.
    CoUninitialize();

}

当我尝试运行该项目时,我收到以下错误屏幕:

在此处输入图片说明

目前我不知道为什么我会收到此错误 Windows 并且我无法在互联网上找到信息。 请你帮助我好吗? 在这里您可以找到包含所有项目的整个解决方案: Onedrive 文件夹

我正在尝试编译和运行当前:

考验我

测试_图书馆

请将 .NET 程序集的项目属性中的平台目标更改为 x86。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM