簡體   English   中英

如何在C#和C ++之間進行交互

[英]How to Interop between C# and C++

我正在嘗試兩種語言之間的非常基本的互操作。 我基本上有一些性能密集的代碼,我想用C ++處理,然后將結果返回給我的應用程序。

所有都將在Visual Studio中編譯。

我選擇int作為輸入和輸出類型,因為編組可能有點不穩定而不是我正在處理的事情。

C ++我有:

#include "stdafx.h" // default from vs2013, no idea what it is

_declspec(dllexport) int Diu(int p) {
    return p * 2;
}

C#我有:

using System;

namespace Interop {
    public class Program{
        [System.Runtime.InteropServices.DllImport("Hardworker.dll")]
        public static extern int Diu(int p);

        private static void Main(string[] args) {
            Console.WriteLine(Diu(2));
        }
    }
}

所以這是一個非常基本的例子。 但是我得到了例外:

Interop.exe中發生了未處理的“System.BadImageFormatException”類型異常

其他信息:嘗試加載格式不正確的程序。 (HRESULT異常:0x8007000B)

C ++項目在創建對話框中創建為Console Application> Dll。 我在反匯編程序中檢查了C ++ dll,我可以看到Diu作為導出符號。

呃。 關於設置互操作,我錯過了什么?

當您收到此錯誤時: HRESULT: 0x8007000B是由paltform不兼容引起的。
檢查您的編譯器配置文件是否設置為相同的平台( x86x64AnyCPU )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM