Обновление 1:
Мне интересно, могу ли я сослаться на файл .lib, но мне кажется, что я не могу.
Если это правда, и у меня нет исходного кода проекта C ++, как я могу использовать его методы?
Кстати, я использую библиотеку FastCV.
Я сталкиваюсь с ситуацией, когда мне нужно вызывать методы C ++ из кода C #.
Структура сгенерированных файлов C ++:
lib
--libfastcv.lib
--vc120.pdb inc
--fastcv.h
--fastcv.inl
--stdint.h
Я знаю, как вызывать методы C ++ из C #:
[DllImport("libfastcv.lib",CallingConvention=CallingConvention.Cdecl)]
public static extern <ReturnType> <MethodName>(<Parameters>);
Но я думаю, что файлы .h и .inl должны быть включены в мой проект C #.
Так как их включить?
Большое спасибо.
Они не Вместо этого вам нужно создавать / использовать двоичные типы, совместимые с вашим собственным кодом, и использовать их. (И вы импортируете метод из длл, не из Lib).
Вам не нужно делать какие-либо включения. DLLImport должно быть достаточно.
Чтобы увидеть методы, которые вы можете импортировать, вы можете использовать DependencyWalker или мой любимый инструмент CFF Explorer
Я часто использовал любые функции WINAPI, где мне нужны некоторые константы, определенные в заголовках. Мне всегда приходилось определять их в моем коде на C #, поэтому нет способа их «импортировать».