草庐IT

32bit-64bit

全部标签

windows - 从 64 位应用程序使用 32 位进程内 COM 服务器的简单方法有哪些?

我有一个32位nativeC++ATL进程内COM服务器,它依赖于大量遗留的32位库。我需要在64位应用程序中使用它,并尽可能进行最小的更改。一种选择是将其放入COM+应用程序中。还有哪些简单的选择? 最佳答案 创建一个加载inproc服务器dll的32位助手应用程序,但它充当本地服务器。编译64位代理stub代码。然后,当64位应用程序尝试加载您的ActiveX时,它不会使用32位inproc(它无法加载),而是加载32位本地服务器-一个单独的进程-这是合法的。代理stub是从您的IDL自动生成的代码,应该可以很好地构建64位。

windows - WMI Win32_PerfRawData_PerfOS_PagingFile PercentUsage 图中的可疑值

我已经编写了一个小的VBScript程序来查询WindowsXP(最终也是2003/2008Server)下的页面文件使用情况,但我得到的数字似乎很奇怪。这是程序:Setwmi=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")fori=1to10Setqry1=wmi.ExecQuery("Select*fromWin32_PageFileSetting")Setqry2=wmi.ExecQuery("Select*fromWin32_PerfRawData_PerfOS_PagingFile")

c++ - Win32 : BitTest, BitTestAndComplement, ... <- 如何禁用这个垃圾?

在VS2008SP1安装中,WinNT.h中有以下几行:#defineBitTest_bittest#defineBitTestAndComplement_bittestandcomplement#defineBitTestAndSet_bittestandset#defineBitTestAndReset_bittestandreset#defineInterlockedBitTestAndSet_interlockedbittestandset#defineInterlockedBitTestAndReset_interlockedbittestandreset我有很多基于BitT

.net - 使用 Win32 API 写入应用程序事件信息

.NET提供了EventLog类,能够将应用程序事件信息写入系统上的特定日志。是否有类似的Win32API可以用C++调用? 最佳答案 是的。它记录在MSDN的事件日志记录部分。http://msdn.microsoft.com/en-us/library/aa363652%28VS.85%29.aspx 关于.net-使用Win32API写入应用程序事件信息,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

windows - 如何从 NTFS/FAT32 中的逻辑簇号查找有关文件的信息?

我正在尝试通过Windows碎片整理API(http://msdn.microsoft.com/en-us/library/aa363911(VS.85).aspx)对单个文件进行碎片整理,但如果没有足够大的可用空间block来容纳我的文件,我想移动文件的其他部分为其腾出空间。链接的文章提到了移动其他文件的部分,但我找不到有关如何找出要移动哪些文件的任何信息。从可用空间位图中,我可以找到一个几乎足够大的空间,并且我知道它周围的逻辑簇号,但是从这里我无法找出它周围有哪些文件,并且需要文件句柄来执行FSCTL_MOVE_FILE移动部分文件。有没有什么办法,通过API或者解析MFT,找出逻

windows - Win32同步

我正在尝试编写一个应用程序(基于控制台),其中一个线程从控制台读取信息,另一个线程将相同的信息打印回控制台。我卡在实现同步逻辑上了。谁能给我一些sample。约翰 最佳答案 如果你指的是C++,你可以在这里找到示例:UsingCriticalSectionObjects 关于windows-Win32同步,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2718344/

windows - Microsoft Windows 64 位应用程序开发最佳实践安装文件夹

我的问题是供应商向我提供了一个64位应用程序(打包在一个64位安装程序中),但它会安装到x86(程序文件)文件夹中,他一直告诉我它没问题,但我希望它安装在程序文件目录;因为32位版本会这样做,并且应用程序的脚本是基于此假设开发的。谁能告诉我Microsoft为64位应用程序推荐的最佳实践(链接)。提前致谢。 最佳答案 这可能有帮助:关于64位操作系统上的WindowsInstallerhttp://msdn.microsoft.com/en-us/library/aa367451.aspx您的供应商是否通过MSI文件安装应用程序?如

windows - *A Win32 API 调用是否仍然相关?

我仍然看到有关使用LPTSTR/TCHAR类型等的建议,而不是LPWSTR/WCHAR。我相信Unicode的东西在Win2k中得到了很好的介绍,坦率地说,我不再为Windows98编写代码了。(当然,特殊情况除外。)考虑到我不关心Windows98(或者更不用说ME),因为它们是十年前的操作系统,是否有任何理由使用兼容性TCHAR等类型?为什么仍然建议人们使用TCHAR-它比直接使用WCHAR有什么好处? 最佳答案 如果有人告诉您要遍历1,000,000行非_UNICODEC++,其中大量声明使用char而不是wchar_t或TC

c++ - 打印机驱动程序开发 - 从 32 位到 64 位

我开发了一个为32位系统编译的驱动程序。该驱动程序基于unidriver。有谁知道要使驱动程序与64位兼容需要什么?如果有的话,我需要对代码做哪些更改?还是只需要用64位版本的DDK编译它?提前致谢。努诺 最佳答案 第一步是使用VisualStudio打开项目并添加x64配置。然后,测试并查看它是否构建(可能不会)。最常见的错误(我遇到过)是这些:DWORD->DWORD_PTR+所有相关的具有长版本的Win32api函数指针截断:将在msvc上发出警告,在gcc上发出错误:在适用的情况下将long/int替换为(u)intptr_

c - shellexec 和 c :\program files - x86 and x64 portability

我正在修改一个开源GUI(用c编写)以将新菜单项添加到托盘应用程序。新的菜单项在程序根目录c:\programfiles目录中执行一个文件(update.exe)。我正在使用shellexec(),它在x86上运行良好,但由于x64上的路径不同-c:\programfiles(x86),它无法加载。我想使用一些像%programfiles%这样的环境变量的效果。对此有什么优雅的解决方案?或者,我确实可以更改update.exe文件的存储位置。将它放在“程序文件”中似乎是最合乎逻辑的。对于上面的问题,它应该放在程序文件之外吗?如果是,在哪里? 最佳答案