Win32编程中请慎用ebx/esi/edi

根据我的试验,在win2000以上操作系统对于ebx,esi,edi好像是拿来就用,没有进行保护和恢复,如果你的程序中使用了这几个寄存器,请一定先压栈,用完后恢复。否则会使程序在win98下正常,在win2000下出现莫名其妙的非法操作,一般是提示某个地址不能进行读写操作,而这个地址并不在你的程序的控制下。

时间: 2024-10-06 17:13:09

Win32编程中请慎用ebx/esi/edi的相关文章

c++-win32编程中基于对话框的程序和普通的窗口程序有什么区别?

问题描述 win32编程中基于对话框的程序和普通的窗口程序有什么区别? 很疑惑,既然窗口可以直接编写,为什么还要基于对话框来写程序? 解决方案 这就好比你将滚动条用于窗口一部分和使用滚动条控件,效果最终一样,但是后者Windows会为你处理一些鼠标和键盘上的逻辑,使得编程更容易,对话框中一般使用大量控件,Windows会为你处理比如输入焦点转移.键鼠等逻辑.

C#的WIN32编程中遇到了问题,请高手指教。

问题描述 各位高手前辈,我现在正根据公司的需求,研究着WIN32编程,在研究过程中,对于文本框,下拉框,复选单选等这些基本控件的值已经获取了,但对于大型数据绑定控件(如:DATAGRID,DATAGRIDVIEW,DATAVIEW等等)就没办法获取里边的数据了,请问各位高手前辈有没有什么办法解决这个问题呢,先谢谢了. 解决方案 解决方案二:看看MSDN吧,里面有详细解释你应该看一点基本的C#编程书籍解决方案三:我说的是在另一个软件中获取数据,就是做个插件,获取另一个正在运行的软件中类似DATAG

c-win32编程中窗口不显示是什么问题

问题描述 win32编程中窗口不显示是什么问题 <windows程序设计>第9章ENVIRON程序 把光盘中的源代码粘贴出来发现还是没有窗口在运行,实在想不明白 (运行环境:VS2013,WINDOWS7) 以下源代码: #include #define ID_LIST 1 #define ID_TEXT 2 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstan

线程-关于Win32核心编程中DLL注入后无反应的解决办法

问题描述 关于Win32核心编程中DLL注入后无反应的解决办法 #include #include HINSTANCE hProcess; PWSTR pszLibFileRemote; HINSTANCE hThread; void StartInject(int ProcessID, char * DllName); void OverInject(char * DllName); void EnableDebugPrivilege(HANDLE processHandle); int ma

win32-关于windows7中WIN32编程下的问题

问题描述 关于windows7中WIN32编程下的问题 在win7中建了一个很简单的win32工程项目,代码如下,为啥RegisterClass(&wndclass)会失败呢? #include #pragma comment(lib, "winmm") LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinst

求解,windows编程中,win32程序,如何将字符串按一个一个字符逐个动态输出?

问题描述 求解,windows编程中,win32程序,如何将字符串按一个一个字符逐个动态输出? windows编程中,win32程序,如何将字符串按一个一个字符逐个动态输出? 主要是如何测得字符串的长度,然后可以用for循环吗,如果不能用什么循环. 解决方案 string bb = ""; foreach (char aa in "求解,windows编程中,win32程序,如何将字符串按一个一个字符逐个动态输出?") { bb += aa.ToString();

.net编程中使用commandfield列无法实现更新功能,请大虾们指教

问题描述 我在编程中使用commandfield列自动生成编辑,更新,取消列,但是代码写完以后更新功能无法实现.点击更新之后,数据没有被修改,代码如下,请大虾们指正.具体程序功能是,首先查询信息,然后编辑里的修改.usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usin

C# 编写的com(按照C#高级编程中的方法写了所谓的连接点) c++如何将函数与事件关联起来 ?? 高手请进..........

问题描述 C#代码:是按照<C#高级编程>中的方法写的下面的IEvent接口里的方法名与后面的Class1中的事件名相同...而且Class1有特性[ComSourceInterfaces(typeof(IEvent))]据书上说这样就可以供C++来连接了.我想的就是C++写好一个函数然后这个函数就是Class1中的事件LoginOk的处理函数就和C#里用LoginOk+=....一样.但是我就是不明白怎么把C++的方法和这个Class1的事件联系起来而且这个IEvent也完全没用到...us

界面划窗口设计-WIN32汇编中窗口设计,新手求帮助

问题描述 WIN32汇编中窗口设计,新手求帮助 .386 .model flat,stdcall option casemap:none include windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib .data? hInstance dd ? nhWnd dd ? .data SZClassName db "My Windows" SZW