- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在名为 StillIamge 的接口(interface)中调用名为 GetDevicesList 的方法调用,但返回的结果为空。我认为这是一个指针问题,但我不是 C++ 专家,我认为这就是问题所在。方法调用是:
HRESULT GetDeviceList(
DWORD dwType,
DWORD dwFlags,
[out] DWORD *pdwItemsReturned,
[out] LPVOID *ppBuffer
);
我知道它在工作,因为当我插入和拔出成像设备时,退回设备的数量会上下波动。结果是空白的事实我认为是由于我没有得到正确的指针 - 有人可以快速看一下并告诉我是否是这个原因吗?
#include "stdafx.h"
bool debug = true;
int _tmain(int argc, _TCHAR* argv[])
{
DWORD dwStiTotal = 0;
PSTI pSti = NULL;
HRESULT hres = StiCreateInstance(GetModuleHandle(NULL), STI_VERSION, &pSti, NULL);
STI_DEVICE_INFORMATION deviceInfo[255];
memset(deviceInfo,0, sizeof(deviceInfo));
hres = pSti->GetDeviceList(NULL, NULL, &dwStiTotal, (LPVOID*) deviceInfo);
printf("number devices %d\n", dwStiTotal);
for (int i=0; i<dwStiTotal; i++){
printf("---------------------------------------------------\n");
printf("type %d\n", deviceInfo[i].DeviceType);
printf("vendor %s\n", deviceInfo[i].pszVendorDescription);
printf("device %s\n", deviceInfo[i].pszDeviceDescription);
printf("portname %s\n", deviceInfo[i].pszPortName);
printf("PropProvider %s\n", deviceInfo[i].pszPropProvider);
printf("LocalName %s\n", deviceInfo[i].pszLocalName);
printf("InternalName %s\n", deviceInfo[i].szDeviceInternalName);
}
pSti->Release();
if (debug){
char key;
std::cin >> key;
}
return 0;
}
非常感谢您提出这样一个基本问题!
问候,
尼尔
最佳答案
如果您检查 reference对于 GetDeviceList
,最后一个参数 ppBuffer 是 (指向 a 的指针) STI 分配 缓冲区的句柄。你正试图向它发送一个你自己分配的缓冲区,我相信这甚至应该以某种方式崩溃......
无论如何,这是正确的做法
STI_DEVICE_INFORMATION* deviceInfo = NULL;
hres = pSti->GetDeviceList(NULL, NULL, &dwStiTotal, (LPVOID*) &deviceInfo);
我们得到的是指向 STI_DEVICE_INFORMATION
项数组的指针,由 STI 本身分配。完成后,您需要使用 LocalFree
发布它。
关于c++ - StillImage::GetDeviceList 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10962982/
运行脚本时,我收到错误“无法从静态上下文引用非静态方法 getDeviceList()” - 如何将此方法设为静态? private static String getUsbDeviceAddress
我正在尝试将 Arduino 板与我的 Odys Neo x8 平板电脑一起使用,但 UsbManager 似乎无法正确识别该设备。我通过 OTG 适配器将 arduino 连接到平板电脑,以便平板电
我试图打印出使用 CaptureDeviceManager 类中的 #getDeviceList() 方法支持的所有捕获设备,并且返回的 Vector 的大小为 0。 这是为什么呢?我有一个可以使用的
我在使用 JMF 和获取 CaptureDeviceManager.getDeviceList() 列出任何捕获设备时遇到问题。 我正在 Ubuntu 3.11.0-20-generic x86_64
我正在尝试在名为 StillIamge 的接口(interface)中调用名为 GetDevicesList 的方法调用,但返回的结果为空。我认为这是一个指针问题,但我不是 C++ 专家,我认为这就是
我是 Jpcap 的新手。我正在使用 NetworkInterface[] arr=JpcapCaptor.getDeviceList(); System.out.println(arr.length
我想通过编写以下代码来使用 UsbManager API: 在 Activity 代码中: UsbManager manager = (UsbManager) getSystemSer
在 Samsung S4 设备上工作,但在 MotoG、Samsung A5(2016) 上不工作 下面的代码总是返回零,我尝试在 list 文件中授予权限但它仍然返回 null.. 谁能给我任何建议
我在 ubuntu 11.10 上使用 java 编写代码 笔记本电脑网络摄像头运行正常并找到它 /dev/v4l/。Skype 应用程序可以使用网络摄像头并运行。 我安装了 JMF,但无法添加环境变
我正在尝试通过 USB 将 Android 手机连接到配件(在本例中为 MacBook pro)并使用 getDeviceList() 验证连接是否被识别并通过 toString( ) 使用以下代码:
我是一名优秀的程序员,十分优秀!