can';t在64位平台上以32位python运行32位dll
简短摘要: 我有一个DLL,可以检测计算机中的钩子(这是我在互联网上找到的一个版本),它是32位的,所以我想我也应该使用32位版本的Python。 现在,我的操作系统是64位的,但我读到了其他问题,他们说只要运行它的进程(Python)是32位的,就不会有问题。 所以我运行了这个程序,它说: ''此程序当前不支持64位主机。未能 附加到桌面“默认值”。“” ''致命:c:\users\1\downloads\hookd1\hookdll\desktop.c第781行, 初始化全局桌面存储():添加所有桌面()失败。无法添加 任何台式机 这意味着64位机器无法运行它,但正如您在下面的代码中看到的,它只是一个警告,应该可以工作(我认为): 我试图解决问题的尝试:can';t在64位平台上以32位python运行32位dll,python,c,dll,32bit-64bit,Python,C,Dll,32bit 64bit,简短摘要: 我有一个DLL,可以检测计算机中的钩子(这是我在互联网上找到的一个版本),它是32位的,所以我想我也应该使用32位版本的Python。 现在,我的操作系统是64位的,但我读到了其他问题,他们说只要运行它的进程(Python)是32位的,就不会有问题。 所以我运行了这个程序,它说: ''此程序当前不支持64位主机。未能 附加到桌面“默认值”。“” ''致命:c:\users\1\downloads\hookd1\hookdll\desktop.c第781行, 初始化全局桌面存储():添
- 将python更改为32位版本
- 使用
在regsvr32
中运行DLL(不太了解解决方案,但DLL似乎无法工作,除非我遗漏了一些内容)sysWOw64
- 将我的Visual Studio项目从调试版本更改为发行版,因为依赖项检查表明它使用了我没有的
,所以我将dll更改为发行版msvcr100d.dll
- 我尝试过的另一个解决方案无效:
我在某处看到的一个修复方法是在解决方案中从
更改为任何CPU
,但我的解决方案只有两个其他选项,即“活动(win32)”和x86
。 我的当前位于win32
上,我认为它应该支持,对于那些说我也应该尝试win32的人,我用active(win32)
重新构建了解决方案,它给出了同样的问题win32
void warn_x64( void )
{
USHORT x64_host = 0;
/* IsWow64Process() is not always available. alternative:
Windows x86 host GS register is 0, x64 GS register is not
*/
#if defined( _MSC_VER )
__asm
{
mov x64_host, gs
}
#else
asm( "mov %%gs, %0" : "=r" (x64_host) );
#endif
if( x64_host )
MSG_WARNING( "This program does not currently support 64-bit hosts." );
return;
}