我正在尝试使用SetupDi函数枚举所有连接的USB设备的设备路径.设备路径是CreateFile()中使用的路径,因此我可以与设备通信.
但是,SetupDiGetDeviceInterface需要一个接口GUID,但我不是专门寻找一个特定的接口(除了所有连接的USB).这部分被评为/*???*/在下面的来源中.
尝试的解决方案:
我试图提供GUID_DEVCLASS_UNKNOWN = {0x4d36e97e,0xe325,0x11ce,{0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18}}; 但这引起了"没有更多接口"的错误.
我也尝试将deviceInfoData.ClassGuid提供给SetupDiGetDeviceInterface但是我得到了与上面相同的错误,"没有更多的接口".
问题:
是否有涵盖所有USB设备的通用接口类?(HID,通用等)
或者是否有一个替代功能,它将为我提供设备的路径?(SetupDiGetDeviceInterfaceDetail返回的SP_DEVICE_INTERFACE_DETAIL_DATA结构的Instread).
资源:
HDEVINFO deviceInfoList
SP_DEVINFO_DATA deviceInfoData;
deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
SP_DEVICE_INTERFACE_DATA deviceInterfaceData;
PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL;
DWORD requiredLength = 0;
char *hardwareID = 0;
// Retrieve a list of all present devices
deviceInfoList = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE | DIGCF_ALLCLASSES);
if (deviceInfoList == INVALID_HANDLE_VALUE) {
SetupDiDestroyDeviceInfoList(deviceInfoList);
return false;
}
// Iterate over the list
for (DWORD i = 0; SetupDiEnumDeviceInfo(deviceInfoList, i, &deviceInfoData); i++) {
if (deviceInterfaceDetailData) LocalFree(deviceInterfaceDetailData); …Run Code Online (Sandbox Code Playgroud) USB类的名称是什么,它处理与USB设备的通信,这些设备在Window的设备管理器中显示为COM端口?对于linux(至少对于Fedora 17和Ubuntu 12.04),这些端口显示为ACM(抽象控制模型,/ dev/ttyACM#).
据我所知,从历史上看,串行通信主要通过RS-232串口完成,现在已弃用.我相信今天的标准是使用HID通过USB进行通信.
谷歌搜索ACM显示它是CDC(通信设备类)的一部分,它是与HID相反的USB通信类(即USB设备可能使用HID或CDC).这篇维基百科文章揭示了CDC/ACM是一种通过USB模拟RS-232通信的方法.
有了这些信息,这种形式的串行通信不应该被称为"CDC"或"CDC/ACM"吗?
据我所知,它可能是一个坏主意来ReactDOM.render()成document.body.但是,有没有使用任何的问题ReactDOM.createPortal()用document.body?
当你渲染成身体时,试图寻找React去疯狂的例子,所以我可以用createPortal测试它,但我找不到任何东西.
把事情放到上下文中,这是我正在谈论的示例用法:
import React from 'react';
import ReactDOM from 'react-dom';
export default class Modal extends React.Component {
render() {
return ReactDOM.createPortal(
<div className='modalContainer'>
<div className='modalBox'>
{this.props.children}
</div>
</div>,
document.body
);
}
}
Run Code Online (Sandbox Code Playgroud)
没有遇到这种模式的任何问题,但我想知道是否有后果,因为我开始添加更多的库.
我有一个 asp.net core 3.0 网站,我正在尝试使用 FileProvider。我根据示例创建了以下内容,但我不断收到错误消息
InvalidOperationException:无法加载程序集“Test”的嵌入文件清单“Microsoft.Extensions.FileProviders.Embedded.Manifest.xml”。
下面是我的创业班
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using IntranetPages.Shared;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Server.IISIntegration;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting;
namespace Test
{
public class Startup
{
private readonly IWebHostEnvironment _env;
public Startup(IWebHostEnvironment env, IConfiguration configuration)
{
Configuration = configuration;
_env = env;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个ASP.NET-Core 3.1( netcoreapp3.1) 应用程序,该应用程序依赖于.NET-Standard 2.0使用 MSBuild SDK的 NuGet 库"Microsoft.NET.Sdk.Razor"。
这在 Visual Studio (2019) 中构建并运行良好,但是当我运行时dotnet build出现以下错误:
Build FAILED.
CSC : error CS8034: Unable to load Analyzer assembly
C:\Users\daniel\.nuget\packages\microsoft.aspnetcore.mvc.analyzers\2.2.0\analyzers\dotnet\cs\Microsoft.AspNetCore.Mvc.Analyzers.dll
: Assembly with same name is already loaded [D:\git\myapp\src\myapp.App\myapp.App.csproj]
0 Warning(s)
1 Error(s)
Run Code Online (Sandbox Code Playgroud)
我的猜测是我的.NET-Standard 2.0库正在Microsoft.CodeQuality.Analyzers通过Microsoft.NET.Sdk.RazorSDK拉入2.x ,这与ASP.NET-Core 3.1应用程序拉入的库相冲突。
有没有一种方法可以像 Visual Studio 一样通过命令行构建我的应用程序?
#if NETCOREAPP3_1在我的库中使用多目标和块的正确解决方案是什么?
c# .net-core asp.net-core .net-standard-2.0 asp.net-core-3.1
从 Visual Studio 运行时,MSBuild 被赋予$(SolutionDir)宏/属性。从 Azure DevOps 运行时,此属性不存在(理所当然)。
Azure DevOps 具有Build.SourceBranch可以作为属性传递给 MsBuild 的变量。这个变量更好,因为它直接指向存储库根目录,而$(SolutionDir)如果解决方案不在根目录中,则可能指向子目录。
我是否可以在 Visual Studio 和 Azure DevOps 中使用一致的 MsBuild 属性,该属性可以指向存储库根?
实现此目的的一种方法是Directory.Build.props在存储库根目录中有一个文件并指定一个属性<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>,但是我有一个限制阻止我这样做。
我在Fedora 17和Ubuntu 12.04上安装了Qt 4.8.3和Qt Creator 2.5.2.当我创建GUI应用程序时,可视元素在Qt Designer预览窗口中看起来很好.但是,当我运行应用程序时,生成的应用程序具有较旧的样式,与操作系统不一致,并且与Qt Designer中的预览不匹配.
在下面的两个图像中,顶部是Qt Designer的预览,底部是编译的应用程序.
有没有办法使编译的GUI应用程序正确显示?
Fedora的:

Ubuntu的:

附录:
这是一个显示4.8.1编译应用程序的图像(它应该是什么样子)

此外,如果我在同一台计算机上安装4.8.1和4.8.3,即使4.8.1编译的应用程序也不会正确显示:

如果SERVER_ADDR和SERVER_NAME变量不匹配,我需要重定向用户.
我的httpd.conf文件中有以下规则:
RewriteEngine on
RewriteCond %{SERVER_NAME} !%{SERVER_ADDR}
RewriteRule .* /myRedirectPage.html [PT]
Run Code Online (Sandbox Code Playgroud)
当SERVER_NAME和SERVER_ADDR不匹配时,我正确地被重定向.但是,即使它们匹配,我也会被重定向.
如果我使用以下条件,它适用于匹配和非匹配方案:(其中192.168.1.1是服务器IP)
RewriteCond %{SERVER_NAME} !192.168.1.1
Run Code Online (Sandbox Code Playgroud)
为了检查变量是否匹配,我使用了PHP $_SERVER['SERVER_NAME']和$_SERVER['SERVER_ADDR']变量.
我该怎么写RewriteCond,以便它不会重定向用户if SERVER_NAME和SERVER_ADDRmatch?
给定一个需要 5 分钟左右的 UPDATE 执行,当 SELECT 尝试从同一个表中检索数据时会发生什么?对于不同的事务隔离级别和SELECT WITH (NOLOCK),SELECT 是否等待 UPDATE?如果没有,SELECT 是否返回旧数据(UPDATE 之前的数据)或当前插入记录的一部分(例如当前插入记录的 50%)?
如果发现以下问题,但它仅描述在长 SELECT 期间执行和 UPDATE 时会发生什么。
我正在使用 MS SQL Server 2012。希望这种行为对于不同的实现是一致的。
如问题标题所述,我有一个Eclipse Java EE Web应用程序项目.进入WebContent文件夹我有一些文件和子文件夹,其中有.DS_store OsX系统文件会导致一些问题,因为当我导出到war文件时它们总是包含在内.
我知道有一种方法可以排除文件或文件夹但只能进入src文件夹,而不能进入WebContent!
有任何想法吗?
问候
asp.net-core ×2
usb ×2
.net-core ×1
apache ×1
azure-devops ×1
c# ×1
cdc ×1
eclipse ×1
html ×1
http ×1
javascript ×1
linux ×1
mod-rewrite ×1
msbuild ×1
qt ×1
qt4.8 ×1
reactjs ×1
serial-port ×1
sql ×1
sql-server ×1
visual-c++ ×1
war ×1
winapi ×1
windows ×1