Нерешенные внешние проблемы для новичка...
Привет,
Я новичок в c++ , так что, пожалуйста, потерпите меня.
Я создаю некоторый c++, который использует включенные заголовки (dshow.h), но при связывании я получаю неразрешенные внешние объекты на IID и CLSID, которые я использую.
Что я уже пробовал:
Я могу обмануть, заглянув в включенные файлы и создав свои собственные GUID.h файл например:
extern "C" { extern const IID IID_IDvdGraphBuilder = { 0xFCC152B6, 0xF372, 0x11d0, { 0x8E, 0x00, 0x00, 0xC0, 0x4F, 0xD7, 0xC0, 0x8B } }; extern const CLSID CLSID_DvdGraphBuilder = { 0xFCC152B7, 0xF372, 0x11d0, { 0x8E, 0x00, 0x00, 0xC0, 0x4F, 0xD7, 0xC0, 0x8B } }; }
Это работает, но это не очень хорошо в долгосрочной перспективе, что я упускаю?
RedDk
Не знаю, зачем кому-то взламывать свободно доступную кодовую базу для 3D-графической платформы (Microsoft DirectX распространяется в виде SDK для многочисленных видов ... MS sub-platforms), но я предполагаю, что вы используете Visual Studio, когда делаете этот трюк IID и CLSID ... перейдите на страницу свойств и в разделе Компоновщик/Командная строка введите следующие символы: /VERBOSE
Это подскажет компоновщику взорвать содержимое сообщения в окне вывода при следующей попытке компиляции. Вы все равно связываете это так ... библиотека, к которой пытается подключиться неразрешенный внешний объект, теперь будет иметь имя. Как только у тебя будет имя ... скажем, DXSHOW.lib или что-то в этом роде, вы можете вернуться и добавить его в список внешних библиотек ...
Что-то вроде того. Прошло уже некоторое время с тех пор, как я делал DxSDK sample compiles tbh ...