Имеется C++/CLI DLL'ка. Цель — изменить managed-часть, и собрать ее заново.
Если я правильно понял, вытащить оттуда unmanaged часть для отдельной с ней работы никак нельзя. Или можно?
А можно ли обращаться к unmanaged функциям из своего внешнего процесса?
ILSpy дает такую штуку, например:
.method assembly static pinvokeimpl( lasterr cdecl)
int32 modopt([mscorlib]System.Runtime.CompilerServices.IsLong) modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl)
SomeClass.SomeMethod(uint32 modopt([mscorlib]System.Runtime.CompilerServices.IsLong)* A_0) native unmanaged preservesig
{
.custom instance void [mscorlib]System.Security.SuppressUnmanagedCodeSecurityAttribute::.ctor() = ( 01 00 00 00 )
// Embedded native code
// Disassembly of native methods is not supported.
// Managed TargetRVA = 0x0000BE0D
} // end of global method SomeClass.SomeMethod
Можно это, или еще где что там указано, как-то в чистом C# прописать для вызова, скажем, через DllImportAttribute в другой сборке, либо каким-нибудь другим хитрым способом?
PS. DLL'ка 64-битная, попытки посмотреть экспорт при помощи DLL Export Viewer или Dependency Walker что-то не увенчались успехом — ничего не экспортируется, либо что-то мешает посмотреть. Дизассемблером пользовался раньше, но ollydbg 32-битный, и ничего взамен пока не подобрал. Надеюсь, вообще, можно попроще как-нибудь.