2017-01-20 5 views
1

Я использую библиотеку DirectXTK для класса геймпад. Я собрал библиотеку только с этим классом внутри, и он работает.CoInitialize не был вызван - (загрузка gamepad.h из DirectXTK без библиотеки)

Если бы я только добавлял исходные файлы в мой проект, без библиотеки, размер был бы ~ 50 КБ вместо ~ 500 КБ. Тем не менее, я получаю следующее сообщение об ошибке:

CoInitialize has not been called 

Любые идеи о том, как решить эту проблему таким образом мой исполняемый файл будет меньше по размеру?

+0

Поскольку это не ответ, я поставлю его как комментарий: «размер не имеет значения». Не только для Yoda, но и для нас разработчиков. 50K или 500K? Никто не позаботится. – nvoigt

ответ

2

Знаете ли Вы, что ... CoInitialize Вы считаете, что самое первое в main.

int main() 
{ 
    CoInitialize(NULL); 

    // your code 

    return 0; 
} 
+0

Привет, спасибо. Я сделал это, и проект компилируется. Тем не менее, геймпад не обнаружен, когда проект с библиотекой обнаруживает его – Z0q

+0

@ Z0q Библиотека, вероятно, делает больше, чем эта инициализация, просто, что остальная часть не вызывает ошибок. Можете ли вы посмотреть на источник библиотеки и проверить? Например, вызов 'CoInitialize' должен произойти где-то, если вы можете найти источник, вы можете обнаружить, что еще не хватает. – nvoigt

+0

Эта функция не вызывается в источнике библиотеки. Тем не менее, есть одна заметка, которую я нашел в одном из исходных файлов, в котором говорится: // Примечание: Предполагается, что приложение уже вызвало CoInitializeEx. – Z0q

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