2009-08-23 10 views
6

Czy istnieje sposób hostowania środowiska wykonawczego .NET CLR i rejestrowania funkcji MethodImplOptions.InternalCall? (To nie jest temat P/Invoke).NET CLR InternalCall

Odpowiedz

3

Kod SSCLI (konkretnie clr \ src \ vm \ ecall.cpp) sugeruje, że nie ma sposobu na zarejestrowanie metod InternalCall, ponieważ ważna tabela gECClasses jest zakodowana na stałe.

+0

Czy rzeczywisty interfejs API różni się od wersji ze wspólnym źródłem? – jameszhao00

+0

Na pewno są, ale jak? .. Mogę tylko zasugerować rozpalanie twojego IDA i - publicznych symboli w jednej ręce, kodu SSCLI w drugim - nurkowanie w 'mscorwks.dll'. –

+0

Widziałem wiele osób zadających to pytanie na forach - albo chcą coś wywołać w bibliotece DLL w C++ i sądzę, że to może być sposób na zrobienie tego, albo nigdy nie mówią, co chcą zrobić. Odpowiedź w obu przypadkach brzmi "Nie". W interesie, dlaczego chcesz to zrobić? –

0

IMetaDataImport jest twoim najlepszym wyborem, ale nie może za to ręczyć. To wydaje się być specyficznym zadaniem dla C++/CLI.

+0

Droga od znaku, -1 –

+0

Co to jest "droga od zera" tutaj? Jeśli nie ma sposobu, aby InternalCall działał za pomocą interfejsu API COMI, P/Invoke nie jest opcją, to C++/CLI jest najlepszym (tylko?) Sposobem zarządzania> niezarządzanym. – arul

+0

InternalCall jest poniżej poziomu CLI, więc C++/CLI. Pytanie Jameszhao jest bardzo szczegółowe, co chce. –

Powiązane problemy