Articles of winapi

端口Win32的DLL挂钩到Linux

我有一个程序(NWShader)挂钩到第二个程序的OpenGL调用(NWN)做后处理效果和什么。 NWShader最初是为Windows构build的,通常是现代版本(win32),同时使用DLL导出(以获取Windows加载它并获取一些OpenGL函数)和Detours(挂钩到其他函数)。 我使用的技巧,在检查sysdir之前,Win将在当前目录中查找任何DLL,因此会加载我的。 我有在这个方法redirect的DLL: #pragma comment(linker, "/export:oldFunc=nwshader.newFunc) 将它们发送到我自己的DLL中不同的命名函数。 然后我做任何处理,并从系统DLL调用原来的function。 我需要将NWShader移植到Linux(NWN存在于两种版本中)。 据我所知,我需要做的是共享库(.so文件)。 如果这是在NWN可执行文件(我发现一个shell脚本来处理这个)之前预加载,我的函数将被调用。 唯一的问题是我需要调用原始函数(我会使用各种DLLdynamic加载方法,我认为),需要能够执行类似Detour的内部函数挂钩。 目前,我正在构buildUbuntu 9.10 x64(带有32位编译器标志)。 我在Google上找不到太多帮助,但是我不知道这个* nix社区究竟是指什么的。 我可以编写C ++,但我更习惯于Windows。 作为OpenGL,需要修改与Linux兼容的唯一部分是钩子代码和调用。 有没有一个简单而简单的方法来做到这一点,或者它会涉及重新创buildDetours并dynamic加载原始函数地址?

Linux / Windows中的C / C ++内存使用API

我想获得每个进程和系统范围的内存使用信息。 在Windows中,这很容易。 GetProcessMemoryInfo和GlobalMemoryStatusEx可以非常轻松地完成这些工作。 例如,GetProcessMemoryInfo给出给定进程的“PeakWorkingSetSize”。 GlobalMemoryStatusEx返回系统可用内存。 不过,我需要在Linux上完成。 我试图find相当于GetProcessMemoryInfo和GlobalMemoryStatusEx的Linux系统API。 我发现'getrusage'。 然而,struct rusage中的最大'ru_maxrss'(驻留集大小)仅为零,这不被执行。 另外,我不知道要获得全系统的空闲内存。 目前的解决方法,我使用的是“系统(”ps -p%my_pid -o vsz,rsz“);”。 手动logging到文件。 但是,处理数据很脏,不方便。 我想知道一些奇特的Linux API用于这个目的。

Linux中的Win32 API相当于什么?

我不想知道在windows和linux的API函数之间是否有一对一的等价关系,也不想知道每个API函数。 我只想知道这两个基本的东西: 我想了解为什么Qt平台是独立的 我想知道我应该在linux中使用什么API来移植使用Win32 API编程的应用程序,或者换句话说,在Win32 API级别。 我知道这是不实际的,但我想知道这种等同性。

从Windows到Linux的RPC

有一些(工作)的例子如何创buildRPC从Windows到Linux? 客户端应该是Windows NT应用程序,服务器是Linux。 它需要是MSRPC 。 没有Corba,没有XML-RPC,SUN-RPC等等 MSDN说: RPC可用于基于Windows操作系统的所有客户机/服务器应用程序。 它还可以用于为包括Unix和Apple等操作系统的异构networking环境创build客户端和服务器程序。 不幸的是,在谷歌上花了几个小时后,我放弃了。 我的期望: Linux节点应该安装了samba,因为它们的MSRPC实现工作。 使用IDL文件,我为客户端和服务器生成存根 客户端使用MSVC构build 服务器使用gcc与samba(或其他库)的一些包含/库构build, Linux节点必须具有这样的RPC端口映射器 有人能指出我吗?

创build单个的python可执行模块

伙计们,我有很多python代码驻留在几个python包中,现在我需要创build一个包含所有这些文件的单个python可执行模块或文件,所以它将在windows和linux服务器上工作。 什么是可能的解决scheme,以及如何做到这一点?

Linux上SetThreadPriority的等效(pthreads)

考虑到下面的一些代码,我想知道在linux下假设pthreads甚至是使用Boost.Thread API的代码是多less。 #include <windows.h> int main() { SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_HIGHEST); return 0; }

是否有类似于Windows WINAPI的Core Linux API,特别是用于创buildGUI应用程序?

我正在从Windows编程(通过Windows编程我的意思是使用Windows API )到Linux编程。 对于编程Windows,我们有的选项是Win32API(MFC只是一个相同的C ++包装)。 我想知道是否有像直接暴露给程序员的Linux API (相当于WINAPI)? 我在哪里可以find参考? 用我对POSIX库的一点知识,我发现它包装了 Linux API 一部分 。 但是创buildGUI应用程序呢? POSIX不提供这一点。 我知道有很多像GTK,Qt等第三方Widget工具包。但我不想使用封装Linux API的库。 我想学习使用“核心Linux API”。 如果有什么我应该知道的,请告知。 任何熟悉Windows和Linux编程的程序员,请映射Linux世界的术语,以便我可以快速移动。 任何资源(书籍,教程, 参考 ),高度赞赏。

如何在C ++中创build一个临时目录?

我正在用C ++编写一个函数来创build一个临时目录。 这样的function应该尽可能便携,例如它应该在linux,mac和win32环境下工作。 我如何做到这一点?

有没有人能够创造PE COFF和ELF的混合体?

我的意思是一个二进制文件可以在Win32和Linux i386上运行吗?

在Windows 7上GetWindowRect太小

我试图解决的实际问题是,我想自动找出窗口边缘的大小。 如果你能find更好的办法,请用一切办法来回答,而不是这个。 为此,我决定截取testing窗口并测量边距。 这很简单,因为我认为没有利润率会是明亮的粉红色,但我承认这是一个黑客。 我使用GetWindowRect ( py )来获取边界框, PIL抓取屏幕截图并剪裁到边界框。 问题是,当作物正常运行时,边界框不准确 。 Windows 7“剪切工具”获得正确的尺寸 。 我怎么能这样做?