大家好,今天小编关注到一个比较有意思的话题,就是关于cygwin 编译win32的问题,于是小编就整理了2个相关介绍的解答,让我们一起看看吧。
64位程序可以调用32位dll吗?
工作流程:

1.创建一个进程外COM服务器(EXE)。
2.将32位dll的接口函数封装为COM服务器的相关接口。
3.注册COM服务器*.exe /regserver (注销 *.exe /unregserver)。

4.64位进程调用32位COM服务器接口,成功。从而曲线实现了64位进程调用32位dll。 具体步骤: 我首先创建了一个简单的dll工程,只输出一个函数int c = add(int a,int b); 生成lib和dll 然后创建一个进程外COM(EXE类型),内部链接dll,添加方法Method: Add(long *c) { *c = add(1,2);}编译生成。 然后注册COM,*.exe /regserver 最创建一个64位WIN32工程验证64位环境下方法调用是否正确,经验证正确!!! 结论:以上方法可以解决64位进程调用32位dll的问题 32位进程调用64位dll应该也可以通过这种方法解决,原因64位windows系统下安装了32位和64位两套COM系统
Win32和Win64是什么意思?有什么区别吗?
32位与64位的Windows,功能上无区别。
但内核上有些区别。如今的兼容性没有太大问题,如果处理器支持64位,安装64位Windows性能会更好。64 位系统有时缺乏对应的软件,那些软件是写给 32 位架构。最严重的问题是不兼容的驱动程序。尽管大部分软件可运行于 32 位兼容模式(又称作模拟模式,即微软 WoW64 技术),其通常无法运行驱动程序(或类似软件),因为程序通常运行于操作系统和硬件之间,在此直接模拟无法使用。许多开放源始码软件封包可简单的从源始码编译为可运行于 64 位环境操作系统,如 Linux。所需的条件是供给 64 位机器的编译器(通常是 gcc)。目前大部分 64 位版本的驱动程序还不能用,由于缺少可用的驱动程序,所以使用 64 位操作系统会有挫折。到此,以上就是小编对于cygwin 编译nginx的问题就介绍到这了,希望介绍的2点解答对大家有用。
