Hi all,
I try the following scenario:
- a C++ library (my own code), unmanaged, makes use of boost (e.g. regex)
- a C++ .NET application (windows forms based) planned as GUI (having used Borland C++ builder in the past, the windows forms approach looks quite appealing to me)
- my C++ library header is included in the .Net form header file wrapped in a #pragma unmanaged/managed pair.
I compiles and links well.
For simple test purposes, I instantiate a class from my C++ library in the form constructor. Calling some unmanaged code from my library there creates a debug assertion:
"Debug Assertion Failed!
[...]
Expression: _CrtIsValidHeapPointer(pUserData)
"
The call stack at that moment is as follows ("Application.exe" is my Windows Forms Application):
> msvcr90d.dll!_msize_dbg(void * pUserData=0x8914c5e3, int nBlockUse=2) Zeile 1511 + 0x30 Bytes C++
msvcr90d.dll!_dllonexit_nolock(int (void)* func=0x89521903, void (void)* * * pbegin=0x0012f000, void (void)* * * pend=0x0012eff8) Zeile 295 + 0xd Bytes C
msvcr90d.dll!__dllonexit(int (void)* func=0x89521903, void (void)* * * pbegin=0x0012f000, void (void)* * * pend=0x0012eff8) Zeile 273 + 0x11 Bytes C
Application.exe!_onexit(int (void)* func=0x0046dce0) Zeile 110 + 0x1b Bytes C
Application.exe!atexit(void (void)* func=0x0046dce0) Zeile 127 + 0x9 Bytes C
Application.exe!boost::re_detail::`dynamic initializer for 'block_cache''() Zeile 191 + 0x2b Bytes C++
[Übergang von Verwaltet zu Systemeigen]
Application.exe!_initterm(void** pfbegin = 0x0046E3A4, void pfend = ) Zeile 130 C++
Application.exe!<CrtImplementationDetails>::LanguageSupport::InitializeNative() Zeile 555 C++
Application.exe!<CrtImplementationDetails>::LanguageSupport::_Initialize() Zeile 678 C++
Application.exe!<CrtImplementationDetails>::LanguageSupport::Initialize() Zeile 876 C++
Application.exe!?.cctor@@$$FYMXXZ() Zeile 922 + 0x9 Bytes C++
[Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für mscorwks.dll]
ntdll.dll!7c91d39c()
kernel32.dll!7c839736()
ntdll.dll!7c91d39c()
kernel32.dll!7c839736()
kernel32.dll!7c809b32()
kernel32.dll!7c80ae80()
ntdll.dll!7c91dfac()
kernel32.dll!7c8329b0()
mscoree.dll!79007c24()
kernel32.dll!7c817067()
To me, it looks like the DLL initialization failed.
Is anybody out there who might help me with this issue? I am completely new to this .Net thing...
Best regards
Matthias
Leopold KOSTAL GmbH & Co. KG - Sitz Lüdenscheid, Registergericht Iserlohn HRA 2854, phG Kostal Verwaltungsgesellschaft mbH, Registergericht Iserlohn HRB 4061 - USt-Id-Nr./Vat No.: DE 125800885
Post- und Werksanschrift: An der Bellmerei 10, D-58513 Lüdenscheid * Telefon: +49 2351 16-0 * Telefax: +49 2351 16-2400 Bellmerei
Geschäftsführung: Dipl.-Kfm. Helmut Kostal (Vorsitzender), Dipl.-Oec. Andreas Kostal, Dipl.-Wirtsch.-Ing. Hermann Eidel, Dipl.-Ing. Marwin Kinzl, Dr.-Ing. Ludger Laufenberg