Note that there are some explanatory texts on larger screens.

plurals
  1. POC++ CLR loading .net 4.0 dll when .net 4.0 is not installed
    primarykey
    data
    text
    <p>I have an application, written on c++ and compiled with VS 2010. I need to load .net dll written on C# and compiled for .net 4.0 platform from c++ code and call some functions. I have already done this through C++ CLR and its calling .net functions fine until .net 4.0 is not installed in the system.</p> <p>When .net 4.0 is not installed any function call raises SEH exception in my c++ code, but library loading is successful. Every time exception code is the same 0xE0434F4D.</p> <pre><code>KERNELBASE.dll!RaiseException() + 0x3d bytes mscorwks.dll!RaiseTheExceptionInternalOnly() + 0x295 bytes mscorwks.dll!UnwindAndContinueRethrowHelperAfterCatch() + 0x63 bytes mscorwks.dll!CorDllMainForThunk() + 0xcd bytes mscoree.dll!CorDllMainWorkerForThunk() + 0x62 bytes mscoree.dll!VTableBootstrapThunkInitHelper() + 0x12 bytes mscoree.dll!VTableBootstrapThunkInitHelperStub() + 0x3e bytes hs.exe!SrvAuth::PluginProxy::ProxyBody() Line 363 + 0x13 bytes C++ hs.exe!hs::hsThread::InvokableEntry(void * thread_obj=0x000000000024de90) Line 458 C++ msvcr100.dll!_callthreadstartex() Line 314 + 0xd bytes C msvcr100.dll!_threadstartex(void * ptd=0x0000000000000000) Line 292 + 0x5 bytes C kernel32.dll!BaseThreadInitThunk() + 0xd bytes ntdll.dll!RtlUserThreadStart() + 0x21 bytes </code></pre> <p>Questions: </p> <ol> <li>Is it possible to determine target .net platform of the loaded dll from C++ code and to determine if such platform installed in the system?</li> <li>Maybe there is any other way prevent SEH exception and show human readable error explanation?</li> </ol> <p>Thanks in advance</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload