Доступ к VC++ Dll из C# (компактная структура)
Я пытаюсь скомпилировать DLL в vC++ и использовать ее в C# для Smart Device. Возможно ли это и как?
2 ответа
Вы должны использовать PInvoke, и вам, вероятно, нужно выставить вызов из вашей неуправляемой dll как extern "C". Посмотрите здесь. Что вы должны учитывать, так это то, что обычно вы не можете использовать классы, созданные вами в вашей C++ dll напрямую, но вам нужны некоторые extern "C"
фасад внутри DLL C++, которая помогает вам взаимодействовать. Чтобы обеспечить экспорт точек входа, необходимых из dll, вы должны убедиться, что экспорт выполнен правильно: http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx. В качестве полезного инструмента, чтобы узнать, какие точки входа DLL экспортируют, вы можете использовать dumpbin. Я никогда не использовал его в компактных рамках, но этот блог, кажется, говорит об этом: http://geekswithblogs.net/BruceEitman/archive/2009/02/25/windows-ce-dumpbin.aspx. По сути, с помощью dumpbin вы можете получить список имен из dll, чтобы помочь вам в объявлении PInvoke.