做手机网站公司微信开放平台和微信公众号的区别
web/
2025/10/6 4:46:29/
文章来源:
做手机网站公司,微信开放平台和微信公众号的区别,上海橙网站设计公司,百度网盘资源Windows是一个不断发展的系统#xff0c;很多新的 API 在操作系统更新时更新#xff0c;而MASM32开发包一般在很长一段时间内都无法及时更新#xff0c;如果需要在编程中使用新添加的API函数。就得自己动手来更手库文件#xff0c;下面我就给大家介绍一下如何通过手动的方法… Windows是一个不断发展的系统很多新的 API 在操作系统更新时更新而MASM32开发包一般在很长一段时间内都无法及时更新如果需要在编程中使用新添加的API函数。就得自己动手来更手库文件下面我就给大家介绍一下如何通过手动的方法添加新的 API。为了便于说明我们以 GetConsoleWindow 这个API为例。这个函数能够取得当前程序所在控制台的句柄。具体说明请参考后面的注释。MasmPlus 已经定义了这个函数在你敲入函数名时会自动弹出提示 但是在编译中会出现无法识别的错误这是因为 MASM32 包这个函数根本没有引用在对应的LIB中缺少声明我们的编译器不认识它。 如果这个函数权权只是没有声明那在你的代码中使用 GetConsoleWindow PROTO :DWORD..... 声明就可以。有多少个参数就有多少个DWORD。还需要引用目录库文件比如INCLUDE xxx.lib 如果说LIB中也没有那要使用LIB工具成生LIB。首先要知道GetConsoleWindow 函数在哪个DLL中。在 MSDN 中搜索到这个函数在 QUICK INFO中可以看到它所在的DLL是哪一个. 假设为Kernel32.dll然后新建一个kernel32.inc 的文档注意文件名必须和目标函数所在DLL一样在里面加入 GetConsoleWindow PROTO :DWORD.... 具体参数有多少个参考MSDN。同时要把其它的函数都添加好。否则生成的库文件只有一个函数引用。比如原本就有一个kernel32.inc的文档只是没有这个函数的声明那就直接添加到已有的inc里面如果是不存在的函数在导出时会显示错误但不会停止。然后使用MASM32包里面的 INC2L.exe 直接调用加上参数就可以生成Kernel32.lib,如inc2l kernel32.inc 要注意的是inc2l也是使用ml和link来建立库的所要要保证环境中能找到它们。可以使用inc2l /?来查看帮助。它的要求是使用环境变量 set mdirdrv:\path来确定link在哪里。 这里处理完了如果需要在MASMPlus中能够列出函数原型还需要添加到安装目录下的Files\keywords.stx这个文档中。打开后找到所在的段如#KEY10添加格式为 GetConsoleWindowhConsole,lpsss...... 这里也是按MSDN而来。如果没有参数直接留空。如果一个函数需要在输入时列出一些常数可以写为下面的格式 GetConsoleWindowhConsole,fFlags[GCW_] 意思是在 MASMPlus 输入时在GetConsoleWindow的第二个参数时列出所有以GCW_开头的常数。如果还有UNICODE和ANSI之分参数个数都是一样的可以使用转向 GetConsoleWindowAGetConsoleWindow GetConsoleWindowWGetConsoleWindow 意思是无论是GetConsoleWindowA还是GetConsoleWindowW都使用与GetConsoleWindow相同的设置。 实际操作1.首先在MSDN上查找 GetConsoleWindow 上面指出该API存在于 Kernel32.Lib中。 2.打开\MASMPlus\Include\ kernel32.inc发现其中并没有定义这个函数。 我们尝试在程序中直接声明 编译仍然有错误 这时我们就要尝试在 Kernel32.LIB 中添加内容。3.在打开的kernel32.inc末尾添加如下代码 GetConsoleWindow PROTO 然后将 kernel32.inc 拷贝到有inc2l.exe工具的目录下我机器上这个工具位于E:\masm32\tools\INC2L 目录下使用 inc2l kernel32.inc 生成kernel32.lib 4.将生成的kernel32.lib拷贝到\MASMPlus\Lib目录下覆盖掉原来的即可。 最终重新编译我们的程序程序中不需要声明通过。 上面只是演示如何声明一个库中没有的函数至于如何设置自动提示的功能请读者自己回去试演。参考1http://msdn2.microsoft.com/en-us/library/ms683175.aspx参考2本文使用的程序例子;#ModeCON;MASMPlus 单文件代码模板 - 控制台程序;--------------------------------------------------------------------;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选-创建工程.必须有多个文件.386.model flat, stdcalloption casemap :noneinclude windows.incinclude user32.incinclude kernel32.incinclude masm32.incincludelib user32.libincludelib kernel32.libincludelib masm32.libinclude macro.asm.data? buffer db 100 dup(?).CODESTART: invoke GetConsoleWindow invoke ShowWindow,eax,SW_MINIMIZE ;暂停显示,回车键关闭 invoke StdIn,addr buffer,sizeof buffer invoke ExitProcess,0 end START 以上为装载内容请尊重原作者的辛勤劳动。装载请注明出处。谢谢 原出处http://www.aogosoft.com/downpage.asp?modeviewtextid138转载于:https://www.cnblogs.com/ziolo/p/3421962.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87745.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!