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.
—СА