Articles of Windows

传递字节的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。 我不觉得有什么办法 – 事实上是可能的吗?

Windows 8:如何在Windows 8 Metro应用程序中使用外部图像

背景:嗨,我是一个基于Windows的开发中的一个完整的新手。 我正在为Windows 8构build一个应用程序。我正在使用Visual Studio中的网格应用程序以及javascript,html-5和css。 问题:我想在显示对象列表时使用外部图像(从我的服务器)。 但是下面的绑定代码不允许。 <div class="item"> <img class="item-image" src="#" data-win-bind="src: image; alt: title" /> <div class="item-overlay"> <h4 class="item-title" data-win-bind="textContent:kiosk.name"></h4> <h6 class="item-subtitle win-type-ellipsis" data-win-bind="textContent: title"></h6> </div> </div> Windows metro应用程序不允许出于安全原因,例如dynamic引用外部URL。 有没有解决这个问题? 请帮助我完全卡在这里。

64位窗口 – 我需要使用IMAGE_NT_HEADERS64?

我试图读取Windows 64环境中的一些进程的PE头,因为我的代码只是读取IMAGE_NT_HEADERS结构的32位和64位可执行文件,我想知道:我需要写一些像 if executable is 64 bit use IMAGE_NT_HEADERS64 else use IMAGE_NT_HEADERS ? 我的代码似乎只使用IMAGE_NT_HEADERS 64和32位进程工作,我错过了什么?

使用草莓Perl 5.16.2.2(64位)安装模块

我曾经使用过activestate perl,但是刚搬到草莓perl是因为我想安装那些不太常用的软件包。 不过,我在我的Windows 7上用Strawberry Perl 5.16.2.2(64位)安装模块时遇到问题。 安装了草莓Perl后,我证实perl工作正常(参考文献1)。 但是安装模块是另外一回事。 根据自述文件, “2.从http://www.cpan.org/安装额外的perl模块(库) c:\> cpan Module::Name" 但是这是我得到的: C:\>cpan Can't locate App/Cpan.pm in @INC (@INC contains: /usr/lib/perl5/5.8.8/msys /usr/ lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/msys /usr/lib/perl5/site_perl/5.8 .8 /usr/lib/perl5/site_perl .) at /d/sberry/perl/bin/cpan line 6. BEGIN failed–compilation aborted at /d/sberry/perl/bin/cpan line 6. 然后我尝试通过“perl -MCPAN -e shell”自己configurationCPAN,但这是我得到的: Where is your gzip program? [/bin/gzip] Where is your tar […]