Nick Reshetinsky Ответов: 2

экспортировать функции из .Lib файл в C#


Привет, ребята!
Я хочу экспортировать некоторые функции из winmm.lib библиотека...Я пытался использовать
[DllImport] но это работает только для динамических библиотек, таких как kernel32.dll,
wininet32.dll

2 Ответов

Рейтинг:
1

Sergey Alexandrovich Kryukov

О нет, это невозможно. Вы можете только P/вызвать DLL, точнее, с помощью PE (Portable Executable) файла вы можете связать экспортируемые функции.

Я думаю, что вам просто нужно использовать WINMM.DLL вместо.

Если файл LIB не является библиотекой ссылок для какой-либо библиотеки DLL или вы не знаете, какую библиотеку DLL вам следует использовать, это совсем другая история.
Чтобы узнать это, вы можете использовать I некоторую утилиту двоичного дампа, такую как dumpbin.exe, http://msdn.microsoft.com/en-us/library/c1h23y6c(v=против 71). aspx[^] (чтобы использовать эту утилиту, лучше всего начать с "командной строки Visual Studio"). Если это библиотека ссылок для какой-то библиотеки DLL, вы можете узнать, какой файл DLL использовать. Если это не так, вам нечего П/вызывать.

Сначала вы должны создать некоторую библиотеку, которую вы могли бы использовать в своем проекте C#. Вот что вы можете сделать в этом случае:

Способ №1. Создайте проект смешанного режима (управляемый + неуправляемый) C++ с помощью C++/CLI. Вы можете связать библиотеку как неуправляемый код, обернуть вызовы неуправляемого кода в класс C++/CLI (классы). После этого вы можете использовать полученную библиотеку как обычную сборку .NET и ссылаться на нее в любом проекте C#.

Способ №2 Другая возможность-использование P / Invoke. В этом случае вы создаете обычную неуправляемую библиотеку DLL с помощью C++, связываете библиотеку и экспортируете нужную вам функцию. Используйте P/Invoke с результирующей DLL.

—СА


#realJSOP

Предлагается в качестве ответа

Sergey Alexandrovich Kryukov

- Спасибо, Джон.
--СА

Sandeep Mewara

Мой 5++ (уже предложенный в качестве ответа!)

Sergey Alexandrovich Kryukov

Спасибо, Сандип.
--СА

Рейтинг:
0

Member 13309303

errdggdfgdfgdfgfgdfggdfgdfggggdfgdfgdfgdfg


Richard Deeming

Удалите этот ответ, иначе вы рискуете быть забаненным с сайта.