2013-05-14 4 views
2

У меня есть библиотека C с файлом заголовка. Теперь я хочу сделать оболочку на C++, чтобы использовать ее в .NET. Когда я включаю библиотеку, компилятор сообщает о синтаксических ошибках в отношении типов переменных (DWORD, LPCSTR и т. Д.). Короче говоря, наверное, думает, что библиотека находится в C++ вместо C.Использование библиотеки C в C++

Я попытался

extern "C"{ 

    #include "c_lib.h" 

} 

, но без успеха. Я использую Visual Studio 2010, поэтому, возможно, поэтому необходимо изменить настройки проекта.

Любая помощь будет оценена по достоинству.

С уважением.

+1

'' DWORD' и LPCSTR' не имеют ничего общего с C++. Вероятно, вам не хватает файла заголовка. –

+2

Собираетесь ли вы обернуть его C++/CLR? Если нет, то почему вы не можете просто импортировать подписи функций C? – crashmstr

+8

Вы _do_ включают '' first? –

ответ

6

Вам необходимо включить <windows.h>, но я думаю, что вы делаете это неправильно. Вам не нужно создавать C++-оболочку для использования библиотеки из .NET. Вы можете использовать DllImport все функции C, которые необходимо вызвать, непосредственно на C#.

Using the DllImport Attribute

+0

Спасибо всем, я использовал пустой проект, поэтому windows.h не был включен, также C++-оболочка в моем случае не была лучшим решением, поэтому я в конечном итоге использовал директиву DLLImport. – autodev101

Смежные вопросы