У меня есть старая нативная DLL-библиотека MFC / c ++, которую мне удалось скомпилировать с флагом / CLR.
Теперь я добавил управляемый класс C ++ / CLI в dll внутри namaspace.
Файл заголовка находится ниже, а файл cpp имеет только #include для файла заголовка.
Нативная dll - это огромный dll-проект с большим количеством неуправляемого кода, но у него есть только один управляемый класс c ++, как показано ниже.
Когда я добавляю эту dll в качестве ссылки на проект .net winforms, я не вижу этого пространства имен / класса в браузере объектов,
и я получаю ошибку компиляции из-за отсутствия пространства имен "ShashiTest"
Я использую Visual Studio 2008.
Собственные библиотеки в смешанном режиме не могут быть добавлены в качестве ссылки на управляемый проект?
Или я что-то упустил
Пожалуйста, помогите.
#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");
}
};
}
Когда я упростил свою проблему ... Я создал новую DLL MFC и добавил к ней управляемый класс C ++ (тот же класс, что и выше). Скомпилировано с флагом / CLR.
Когда я добавляю этот dll в проект winforms и запускаю его, я получаю
System.BadImageFormatException. Любая подсказка?
Однако я вижу, что класс, пространство имен и проект winform компилируются нормально, в отличие от описанной выше проблемы.