Articles of Windows

USB编程与Windows

我想写一个程序来处理我的USB端口(Windows)。我不知道该怎么说,但这是它应该如何工作。该程序应该运行(这应该是第一件事情[病毒警卫之前询问是否这个闪存驱动器应该扫描])当一个闪存驱动器或外部硬盘驱动器插入到一个USB端口。 我不是在谈论汽车运行,我该怎么做。

让Vim在Windows下使用Go

如何configurationWindows下运行的Vim来编辑Golang代码? 我已经花了3个小时在这个主题上通过不完整的自我参考指南进行了漫游,我对此感到厌倦,最后感到沮丧。 好的更多细节。 我安装了Vim。 文件夹结构是: Program Files (x86) -> Vim vim80 autoload colors … vimfiles我的一个混乱的例子是vim-plug的安装指南,在关于Powershell的章节中, md ~\vimfiles\autoload 这些文件夹相对于什么? 我有一个现有的autoload文件夹,但它是在vim80文件夹,因此我的困惑。 前面提到的文件夹结构是Vim安装程序创build的默认文件夹结构。

如何使安全的在线编译器?

我想做简单的在线编译器,从浏览器取代码,发送给服务器,编译它,并返回到浏览器的执行结果。 恐怕有人会执行format C:\从代码或类似的东西。 有什么办法来防止它? PS我正在寻找Windows解决scheme。

传递字节的SAFEARRAY以加载MSXML的函数

如果有任何一种灵魂在那里请通过以下来源,告诉我为什么MSXML“加载”function无法加载这个XML。 在这里我试图加载一个UTF-8编码的XML使用MSXML分析器的“加载”function。 我有一个BSTR [UTF-16编码]作为参数,所以我试图将它转换成字节的SAFEARRAY,以便我可以将它传递到MSXML的“加载”function。 但问题是加载函数无法加载这个XML。 如果有人能提供解决scheme,我将非常感激。 #include <windows.h> #include <objsafe.h> #include <objbase.h> #include <atlbase.h> #include <string> #include <comutil.h> #include <msxml2.h> #include <iostream> using namespace std; #define STATUS_SUCCESS 0 #define STATUS_FAIL -1 long LoadXmlData(BSTR xmlDoc) { HRESULT hr = S_OK; CComPtr <IXMLDOMDocument> xmlDomDoc = NULL; CComPtr <IXMLDOMElement> docRoot = NULL; VARIANT_BOOL isParseSucess = FALSE; CoInitialize(NULL); hr […]

embeddedquicktimevideo暂停点击如何防止?

我在Firefox中embedded了一个快速video。 它的工作原理,但我想阻止用户通过点击鼠标左键停止video。 阅读苹果文档,我没有find任何answear。 我提出了一个解决方法,我只是把一个几乎无形的div覆盖整个video。 该解决scheme适用于OS X的Firefox,但奇怪的是不适用于Windows中的相同版本的Firefox。 我将不胜感激,至less在windows / firefox环境中实现这一点。 谢谢!

获取崩溃后DLL地址的函数

我知道当应用程序崩溃时,系统报告它在mydll.dll中的位置0x00004b79处崩溃。 我有源代码,我有二进制文件,但是我没有PDB或从该DLL的生成的任何列表文件。 崩溃是可重复的,但我不能在生产计算机上安装debugging器,并且在开发或debugging环境中不会发生崩溃。 我已经成立了沃森博士,我有一个崩溃转储和沃森博士日志文件。 Dr.Watson日志文件包含正在执行的函数的反汇编: 10604b70 8b442408 mov eax,[esp+0x8] 10604b74 8b542404 mov edx,[esp+0x4] 10604b78 50 push eax FAULT ->10604b79 8b4120 mov eax,[ecx+0x20] ds:0023:00000020=???????? 10604b7c 52 push edx 10604b7d 6801800000 push 0x8001 10604b82 50 push eax 10604b83 ff156c946210 call dword ptr [mydll!DllUnregisterServer+0x1720c (1062946c)] 10604b89 c20800 ret 0x8 (INT 3指令先于上面的汇编代码片段并成功。) 堆栈跟踪只包含地址mydll + 0x4b79。 它不给任何来电者的信息。 在windbg中加载故障转储没有提供任何附加信息。 我怎样才能确定什么function(甚至更好,哪一行代码)的崩溃发生?

在Windows上应该如何使用开源库?

有很多可以用Visual Studio编译的开源库。 我将一个程序从Linux移植到Windows,但依赖于一些库。 我不知道Windows上有关库的最佳实践。 在Linux上,这些库通常是发行版的一部分。 例如,要在Debian上使用sqlite ,只需要安装libsqlite3-dev ,包含文件和库(包括静态和dynamic)将自动安装并可用于您的程序。 如果你需要一个不同于你的发行版本的版本,你可以将它编译到你的主目录,安装到~/include和~/lib ,并设置适当的环境variables,以便你的编译器在searchpath中包含这些目录。 使用在Windows上作为源分发的库的最佳方法是什么? 如果我dynamic链接,而不是静态链接,是否有一种简单的方法将所需的DLL复制到输出目录,以方便重新分配(假设满足许可证要求)?

MFC:在ON_COMMAND函数混淆?

好吧,这是这个function 。 。 ON_COMMAND(ID_COLOR_RED,OnColor) ON_COMMAND(ID_COLOR_GREEN,OnColor) ON_COMMAND(ID_COLOR_BLUE,OnColor) 。 。 。 无效CMainWindow :: OnColor() { UINT nID =(UINT)LOWORD(GetCurrentMessage() – > wParam); m_nCurrentColor = nID _ ID_COLOR_RED; } 因此,在这里,CurrentMessage的wParam的LOWORD应该包含消息的ID,没关系,但是m_nCurrentColor = nID _ ID_COLOR_RED是什么意思; 手段? 对于红色,绿色或蓝色,m_nCurrentColor可以分别为0,1或2 … 所以首先我们在第一个语句中将消息ID转换为UINT,但是我们在第二个函数中使用m_nCurrentColor = nID _ID_COLOR_RED来做什么? 谁能解释一下吗?

在TCP Telnet传输中丢失字符

我正在使用Winsock通过Telnet发送命令; 但由于某种原因,当我尝试发送一个string时,偶尔会有几个字符丢失。 我用send : int SendData(const string & text) { send(hSocket,text.c_str(),static_cast<int>(text.size()),0); Sleep(100); send(hSocket,"\r",1,0); Sleep(100); return 0; } 有什么build议么? 更新: 我检查了,即使所有的字符被发送,错误仍然发生。 所以我决定改变Sendfunction,以便发送单个字符并检查是否已经发送: void SafeSend(const string &text) { char char_text[1]; for(size_t i = 0; i <text.size(); ++i) { char_text[0] = text[i]; while(send(hSocket,char_text,1,0) != 1); } } 而且,它以一种特殊的方式来放置字符; 即在句子的中间。 例如 set variable [fp]exit_flag = true 被发送为 ariable [fp]exit_flag […]

Windowsregistryredirect是一个“坏事”?

我有我自己的安装程序,我用它来安装我写的几个应用程序。 我一直在更新这个程序,以避免应用程序的数据文件更新到用户的VirtualStore,因为我读这是一个“坏事”。 我这样做是通过将程序和常用数据文件分别存储在正确的位置,而不是像XP中那样将所有内容都保存在程序文件中。 我现在也在使用SHGetFolderPath(是的,它已被弃用,但我仍然需要支持我的XP用户),以获取已知的文件夹,而不是拖网registry,这是另一个“坏事”(我读)。 接下来我要做的是重写安装程序代码,避免在向HKLM写入内容时将registryredirect到Wow6432Node,因为我认为这是另一件“坏事”。 然而,虽然我可以把应用程序特定的东西(如安装文件夹,如果用户决定安装在默认以外),杀手是需要将卸载信息放在HKLM \ Software \ Microsoft \ Windows \ CURRENTVERSION \卸载。 对于在64位系统上运行的32位的东西,这被redirect到Wow6432Node。 我不觉得有什么办法 – 事实上是可能的吗?