我有一個老的本地MFC/C++ dll我設法使用/ CLR標誌來編譯它。 現在我已經將託管的C++/CLI類添加到了namaspace中的dll。使用/ CLR標誌構建的本地dll包含一個託管類
頭文件在下面,而cpp文件只有頭文件的#include。 原生dll是一個巨大的dll項目,有很多未託管的代碼,但它只有一個託管的C++類,如下所示。
當我添加DLL作爲一個.NET的WinForms項目的引用我沒有看到該命名空間/類,在對象瀏覽器,
,我得到編譯錯誤沒有找到命名空間「ShashiTest」
我使用Visual Studio在混合模式下2008
機DLL不能被添加作爲參照管理的項目?
還是我缺少的東西
請幫忙。
#pragma once
#using<mscorlib.dll>
#using<system.windows.forms.dll>
// Class derived from Forms
using namespace System::Windows::Forms;
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Diagnostics;
using namespace System::Windows::Forms;
namespace ShashiTest {
/// <summary>
/// Summary for test
/// </summary>
public ref class test
{
public:
test(void)
{
};
void ShowMessage()
{
MessageBox::Show("Hello World");
}
};
}
當我簡化我problem..I創建一個新的MFC DLL,並添加了manged C++類到它(同一類如上)。用/ CLR標誌編譯。
當我添加此DLL的WinForms項目並運行它,我得到
System.BadImageFormatException。任何線索?
但是,我看到類和名稱空間和winform項目編譯很好,不像我有上述問題。
這應該工作。也許你應該顯示一些代碼?或者使用反射器來檢查你的dll的內容。 – cdleonard