【发布时间】:2011-11-04 20:59:53
【问题描述】:
请看我的代码:
#include <windows.h>
#include <Sti.h>
#include <iostream>
#pragma comment (lib, "Sti.Lib")
using namespace std;
void main ()
{
HRESULT hr = CoInitialize(NULL);
PSTI iface = 0;
hr = StiCreateInstance(GetModuleHandle(NULL), STI_VERSION, &iface, NULL);
DWORD numDevices = 0;
STI_DEVICE_INFORMATION* devices = NULL;
hr = iface->GetDeviceList(NULL, NULL, &numDevices, (void**) &devices);
cout << hr;
hr = iface->Release();
cin.get();
}
GetDeviceList 给我“索引中指定的键不匹配”。知道这意味着什么吗?谷歌似乎在这里没有帮助。 其他一切都很好(我的意思是初始化)。
提前致谢。
更新:它可以在 Win XP 虚拟机上运行,但在主机 Win 7 x64 上仍然失败。奇怪。
【问题讨论】:
-
我重现,相同的操作系统。请注意,这是一个 Windows 错误 (0x80070491),它使错误消息有点可疑。我的机器上没有任何可以提供静止图像的设备,所以我很容易假设该错误实际上意味着“没有设备”。 YMMV。
-
不。我已经把我的相机插上——一点帮助都没有。但是,在 win XP 上,我在没有摄像头的情况下遇到了同样的错误,而在插入摄像头的情况下也可以,所以你部分正确。我们仍然不知道是我的操作系统还是暗示了问题的代码。
-
好的,你知道这个错误意味着“没有找到设备”。找出为什么 Windows 不喜欢你的相机需要访问 superuser.com
-
我的电脑上绝对没有理由出现这个错误(或者看起来如此)。我的操作系统很新鲜,我从来没有弄乱过驱动程序等等。此外,Windows 可以很好地与这款相机配合使用。