草庐IT

c - 如何使用 Windows 和 C 从 URL 获取数据?

在用户的网络浏览器中打开URL非常简单:ShellExecuteA(NULL,"open",url,NULL,NULL,SW_SHOWNORMAL);我应该调用什么来使用给定的URL从网站检索数据?在Mac上,我会使用:URLSimpleDownload(url,NULL,newDataH,0,NULL,NULL);它存储在newDataH中处理从url检索到的数据。很容易。在Windows上是否有等效项? 最佳答案 您可能正在寻找WinINet中的InternetReadFile函数.以下是该API中常用函数的一个很好的列表:Co

在 Windows 核心文件上调用 fopen 返回 NULL 指针

我试图通过它们的绝对路径(在其他地方以编程方式确定)打开几个不同的文件,这样我就可以获得它们的SHA1哈希*,其中一些是核心Windows文件。当我尝试按如下方式打开文件时,fopen()在某些(但不是全部)文件上返回NULL(通常文件名是通过QueryFullProcessImageName获取的,但为了以防万一,我对其进行了硬编码):char*filename="c:\\windows\\system32\\spoolsv.exe";FILE*currFileRead=fopen(filename,"rb");if(currFileRead==NULL){printf("Faile

c++ - 使用 ShellExecute() 与手动打开命令提示符有什么区别?

我正在尝试通过我创建为一种“启动器”应用程序的Windows程序来运行Java程序。通常要运行此java程序,我会运行批处理文件或直接转到cmd提示窗口(Windows键+R,键入“cmd”)并输入java-Xmx4096M-Dsun.java2d.noddraw=true[...]。关键是java在这个窗口里好像被认出来了。另一方面,当我从我的应用程序启动命令提示符时,java不再“被识别为内部或外部命令、可运行程序或批处理文件”。TCHARszPath[MAX_PATH];if(SUCCEEDED(SHGetFolderPath(NULL,CSIDL_SYSTEM,NULL,0,s

c++ - wglCreateContextAttribsARB 在有能力的硬件上返回 NULL

我有一个程序可以在Windows机器上创建OpenGL4.0上下文。在我自己的电脑上,这段代码可以工作——但是,在我friend的电脑上,它就不行了。wglCreateContextAttribsARB返回NULL,即使我friend的Nvidia卡支持OpenGL4.4并且应该能够返回向后兼容的上下文。其他所有调用都按预期进行。这是上下文创建代码:dc=GetDC(window::get());PIXELFORMATDESCRIPTORpfd={0};pfd.nSize=sizeof(pfd);pfd.dwFlags=PFD_DOUBLEBUFFER|PFD_SUPPORT_OPEN

windows - 从用户模式访问内核内存 (Windows)

我正在编写一个需要分配非分页内存池的驱动程序,出于性能考虑,该内存必须可以直接从用户模式程序访问。在驱动程序条目中,我用这两种方法分配了一些内存:pMdl=IoAllocateMdl(NULL,4096,FALSE,FALSE,NULL);if(!pMdl){DbgPrintEx(DPFLTR_IHVVIDEO_ID,DPFLTR_INFO_LEVEL,"ErroronIoAllocateMdl.Returningfromdriverearly.\n");returnSTATUS_INSUFFICIENT_RESOURCES;}MmBuildMdlForNonPagedPool(pMd

windows - Powershell 检索作业给出 "cannot index into null array error"

我正在尝试使用以下脚本测试两台PC是否已连接$array='PC1','PC2'for($i=0;$i-lt$array.length;$i++){Start-Job–NameTestConnection$i–Scriptblock{if(test-connection$array[$i]-count1-quiet){write-hostSuccess}else{write-hostNoconnection}}}当我尝试为任何一个执行Receive-Job时,我得到“无法索引到空数组”。我做错了什么? 最佳答案 您需要传入PC名称作

c++ - 类似于 mmap(NULL, sz, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);在窗口中

我正在尝试将一些linuxC++移植到Windows,但一直停留在这样的一行void*ptr=mmap(NULL,sz,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0);我发现这是一种动态分配内存的方法,因为文件描述符是-1。我如何在Windows中执行此操作?我无法在没有文件处理程序的情况下使用MapViewOfFile的文档中找到任何内容。 最佳答案 MapViewOfFile不带文件句柄,它带文件映射句柄。要分配内存块,您可以创建一个匿名文件映射,如下所示:::DWORD

windows - 在 .bat 文件中启动进程但隐藏它?

我想在.bat文件中启动我的一个应用程序,但它是可见的并且占用了我任务栏中的空间。我如何启动应用程序而不让它可见? 最佳答案 这是我多年前编写的用于执行此操作的实用程序:#include#pragmacomment(lib,"user32.lib")intWINAPIWinMain(HINSTANCE,HINSTANCE,LPSTR,int){constchar*p=GetCommandLine();if(*p=='"'){p++;while(*p&&*p!='"'){p++;}p++;}else{while(*p&&*p!='')

windows - FIND 命令返回空值

在运行确定一组ping的平均延迟的批处理时,我遇到了一个不寻常的问题。将ping传递给FIND命令时,如果在ping中找不到要搜索的字符串,则FOR循环不会执行DO部分,而是跳到下一次迭代。以这条命令为例:FOR/F"tokens=*"%Xin('ping8.8.8.8-n1-w1000^|FIND"Average"')doechoResult:%X如果将其放入命令行,您会得到预期的结果:Result:Minimum=23ms,Maximum=23ms,Average=23ms对于失败的ping,我希望看到:结果:相反,结果为空。您可以通过在其中扔一个死IP来尝试。FOR/F"toke

windows - 如何为不同的语言自动选择最合适的字体?

我需要为不同的语言找到最合适的字体。因此,我可以在不使用GDI文本输出API(例如TextOut)的情况下绘制不同语言的文本。实际上,APITextOut可以做到这一点。HFONThFont=NULL;LOGFONTlg={0};lg.lfHeight=14;lg.lfWeight=FW_NORMAL;wcscpy_s(lg.lfFaceName,LF_FACESIZE,L"Arial");hFont=CreateFontIndirect(&lg);SelectObject(hdc,hFont);TextOut(hdc,0,50,L"abc我爱",5);因为Arial字体不支持中文,所