ошибка LNK2001: неразрешенный внешний символ _CLSID_XYS - PullRequest
5 голосов
/ 26 ноября 2010

В Microsoftsoft SDK определен один файл idl, который недоступен в VS2005. Я использую некоторые интерфейсы из этого IDL.

Теперь это отлично работает на VS 2010. Я хочу, чтобы он компилировался на VS2005.

Я скопировал заголовочный файл в каталог моего проекта. Но это дает мне ошибку компиляции.

Когда я посмотрел в заголовочный файл, идентификатор класса определяется в нем как EXTERN_C const CLSID CLSID_Xyz.

Теперь он определен как extern, поэтому он должен быть объявлен где-то еще в коде.

Так что мой вопрос о том, что файл .h достаточно, или мне нужно также включить файл _i.c.

Любые предложения

1 Ответ

4 голосов
/ 26 ноября 2010

Как только вы изучите этот файл _i.c, вы увидите, что константы CLSID действительно определены там.Так что да, вам нужно включить этот файл .c в вашу программу - либо включив его в файл .c или .cpp, либо просто добавив его в свой проект, чтобы он компилировался отдельно, а затем связывался в окончательный двоичный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...