我正在尝试开发一个应用程序来控制我的ATEM视频切换器,但在开始使用SDK时遇到困难(可在https://www.blackmagicdesign.com/developer/product/atem获取)
我收到以下链接错误:
error LNK2001: unresolved external symbol CLSID_CBMDSwitcherDiscovery
我查了一下,它在 BMDSwitcherAPI.h 中的定义如下
EXTERN_C const CLSID CLSID_CBMDSwitcherDiscovery;
我想我已经包含了所有必需的库等,如下所示
#include "include\BMDSwitcherAPI.h"
#include <cstdio>
#include <map>
#include <string>
#include <utility>
#include <vector>
#include <conio.h>
#include <comutil.h>
#include <atlbase.h>`
我尝试设置切换器发现直接来自他们的示例代码:
CComPtr<IBMDSwitcherDiscovery> switcherDiscovery;
HRESULT result;
result = switcherDiscovery.CoCreateInstance(CLSID_CBMDSwitcherDiscovery, NULL, CLSCTX_ALL);
if (result != S_OK)
{
fprintf(stderr, "A Switcher Discovery instance could not be created. The Switcher drivers may not be installed.\n");
}
有人有任何建议或想法可以帮忙吗?
如上所述,我希望它返回 S_OK 或 Null,这意味着驱动程序未安装(它们确实是)
在 Ken White 的帮助下一切都很好!
只需要使用这些行链接 CMake 中的库(意味着您可以轻松更改文件的位置)
SET(SWITCHERS_SDK_INCLUDE "include/BMDSwitcherAPI_i.cpp")
add_library(BMDSwitcherAPI ${SWITCHERS_SDK_INCLUDE})
并更新 target_link_libraries 部分以包含该库:
target_link_libraries(... BMDSwitcherAPI ...)
现在可以编译了,所以这是克服的一个巨大障碍!