Dll w c++/cli - eksport natywnych metod i błąd

0

W dll-ce, która coś eksportuje (przykład):

Deklaracja funkcji eksportowanej:

extern "C" _declspec(dllexport) void __cdecl Test(void);

Definicja funkcji:

void  Test(void)
{
	dll_test::FormTest ^formTest = gcnew dll_test::FormTest();
	formTest->Show();
	
	return;
}

Później importuję tą funkcję do kompilatora C++ (natywnego).

Co się dzieje: wszystko działa jak należy, dopóki formularz nie zawiera kontrolek takich jak WebBrowser, WindowsMediaPlayer itd (czyli wygląda jakby nie mogło tam być kontrolek korzystających z COM). W innym przypadku mam błąd: External exception E0434F4D.

Co jeszcze muszę zrobić aby to zadziałało? Zakładam że natywny kompilator C++ nic nie wie o tym co siedzi w dll - ma tylko importować funkcje z niej.

0

Kiedyś, gdy miałem problem z kontrolkami COM, pomogło ustawienie takiej opcji:
http://msdn.microsoft.com/en-us/library/s6bz81ya%28v=VS.100%29.aspx

0

Nic to niestety nie pomogło.

0

jaka wersja .Net ? jeśli możesz, zobacz czy to samo się dzieje pod 4.0

0

wrzuć jakiś minimalny kompilujący się kod dający ten błąd.

0

http://www.filesonic.com/file/1160060644

Projekt biblioteki dll w Visualu 2010. W katalogu Release - plik exe, który importuje funkcję Test z dll-ki i pokazuje .netowy formularz. Tak jak pisałem - jeśli na formularz wrzucić kontrolki używające COM, przestaje to działać.

0

w głównym programie (natywnym) trzeba na początku w main() wykonać CoInitializeEx(NULL,COINIT_APARTMENTTHREADED) koniecznie z tym parametrem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1