0

IDE - VisualStudio 2015, версия VB SDK - 5.1.6

Описание проблемы: захотелось написать небольшую тулзу - монитор для для отслеживания изменений на виртуальной машине. Решил писать на C++. Что подключено к проекту из Virtual Box SDK:

  1. VirtualBox.h

  2. VirtualBox.idl

  3. VirtualBox_i.c

Во время сборки ругается на те типы/макроопределения, которые расположены в VirtualBox_i.c. Попробовал подключить библиотеку типов VirtualBox.tlb - однако, компилятор ругнулся, выдается сообщение, что данная библиотека уже задействована. Видимо, в каком-то из вышеперечисленных файлов она действительно подключается. Может я что-то упустил ? Что еще нужно подключить ?

UPD_0: сообщения об ошибках:

  1. unresolved external symbol _IID_IVirtualBoxClient

  2. unresolved external symbol _CLSID_VirtualBoxClient

Код

isnullxbh
  • 5,268
  • Как насчет [mcve] и конкретных сообщений об ошибках? – αλεχολυτ Sep 18 '16 at 06:42
  • @alexolut, я полагаю, что те люди, которые делали сборку подобной конфигурации, понимают, о чем я говорю и сразу заметят, что я упустил (в плане импортирумых из VB SDK файлов). Но если Вам необходимы эти мессаги компилятора для того, чтобы помочь мне - то сейчас же обновлю вопрос. – isnullxbh Sep 18 '16 at 06:47
  • А реализация "_IID_IVirtualBoxClient" в подключенных из SDK файлах есть? – Владимир Мартьянов Sep 18 '16 at 08:13
  • @ВладимирМартьянов, то, о чем мы говорим, получается в результате работы следующей макроподстановки: #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} Так что, вообще говоря, есть. – isnullxbh Sep 18 '16 at 08:19
  • @isnullxbh ну тогда это неведомый подземный стук: реализация есть, а линкер не видит. – Владимир Мартьянов Sep 18 '16 at 08:23
  • Найдите CLSID в том-же интернете или исходниках, и задайте вручную CLSID _IID_IVirtualBoxClient = { .... }; возможно первую "_" в _IID_IVirtualBoxClient нужно убрать - и всё, она будет определена – nick_n_a Sep 21 '16 at 11:54

0 Answers0