2010-11-26 2 views
3

Существует один idl-файл, определенный в microsoft sdk, который недоступен в VS2005. Я использую некоторые интерфейсы из этого IDL.ошибка LNK2001: неразрешенный внешний символ _CLSID_XYS

Теперь это отлично работает на VS 2010. Я хочу сделать его компиляцией на VS2005.

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

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

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

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

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

ответ

4

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

+0

добавление _i.c в проект решает проблему – anand 2010-11-26 10:43:22