在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他语言写的代码进行交互。当需要执行一些性能敏感或者Java无法直接处理的任务时,开发者通常会利用JNI调用C/C++原生代码。本话题关注的是如何在JNI中获取Android设备的MAC地址。 MAC(Media Access Control)地址是网络设备的物理地址,每个设备在网络中都有一个唯一的MAC地址,用于数据传输中的寻址。在Android系统中,由于安全和隐私考虑,直接通过Java API获取MAC地址的权限受到了限制。因此,开发者有时需要通过JNI来绕过这些限制,直接访问底层系统接口。 我们需要创建一个JNI函数,这个函数将在C/C++代码中实现。在Java层,创建一个native方法声明: ```java public class MainActivity extends AppCompatActivity { static { System.loadLibrary("jnima"); } public native String getMacAddress(); } ``` 这里`System.loadLibrary("jnima")`加载了名为`jnima`的本地库,对应的C/C++代码将放在`libjnima.so`文件中。 接下来,我们创建一个`JniMacAddress.cpp`文件,这个文件会包含JNI函数的具体实现: ```cpp #include #include #include extern "C" JNIEXPORT jstring JNICALL Java_com_example_yourapp_MainActivity_getMacAddress(JNIEnv *env, jobject /* this */) { std::string macAddress; // 获取MAC地址的代码将放在这里 return env->NewStringUTF(macAddress.c_str()); } ``` 在C++代码中,我们需要找到一个合适的方法来获取MAC地址。在Android系统中,可以使用`ifconfig`命令或者直接读取`sysfs`目录下的文件来获取。但是,这些方法可能需要额外的权限,因此在实际应用中可能需要动态请求权限或在特定的环境中运行。 例如,通过`sysfs`获取MAC地址的代码可能如下: ```cpp #include #include #include std::string getMacAddress() { std::ifstream file("/sys/class/net/wlan0/address"); if (file.is_open()) { std::string line; std::getline(file, line); file.close(); return line.substr(0, 17); // 去掉末尾的换行符 } return ""; } ``` 这段代码假设设备上的无线网卡名为`wlan0`,在不同设备上可能需要修改为对应的网络接口名称。 注意,Android 6.0(API级别23)及以上版本需要在运行时请求`ACCESS_NETWORK_STATE`权限来访问网络相关信息。尽管这里的JNI方法绕过了Java层的权限检查,但应用仍需在运行时确保拥有必要的权限,否则可能会导致JNI函数失败。 总结起来,在Android的JNI环境中获取MAC地址涉及以下几个关键知识点: 1. 使用JNI进行Java与C/C++交互。 2. 编写C/C++代码以执行原生操作。 3. 了解Android系统的权限管理,特别是在Android 6.0及更高版本中。 4. 熟悉Linux系统接口,如`sysfs`,用于获取硬件信息。 5. 考虑到不同设备和网络接口的差异性。 记得在Android.mk或CMakeLists.txt文件中编译并链接这个C++源文件,生成`libjnima.so`动态库,然后将其打包进APK,以便Java代码能够正确调用。
2026-05-18 13:35:16 226KB android mac
1
标题中的“cefsharp用js获取websocket”涉及到的技术主要包括CEFSharp(Chromium Embedded Framework)和WebSocket。CEFSharp是一个.NET框架,它允许开发人员在他们的应用程序中嵌入Chromium浏览器引擎,从而支持HTML5、CSS3、JavaScript等现代Web技术。WebSocket则是一种在客户端和服务器之间建立长连接的协议,用于实现双向通信。 让我们深入了解CEFSharp。CEFSharp是基于Google的开源项目Chromium的,它为.NET开发者提供了一个简单易用的接口,可以在Windows、Linux和macOS平台上使用。通过CEFSharp,你可以创建一个自定义的浏览器控件,这使得在桌面应用中集成Web功能变得非常便捷。CEFSharp支持多种编程语言,包括C#、VB.NET和C++/CLI。 WebSocket协议是HTTP的升级版,用于解决HTTP协议的不足,即HTTP的每次请求都需要建立新的TCP连接,而WebSocket只需一次握手即可建立持久连接。WebSocket协议允许服务器和客户端进行全双工通信,即双方可以同时发送数据,提高了实时性,非常适合实时聊天、在线游戏、股票交易等应用场景。 描述中提到的“实例代码报错client server 端和前端的网页代码”,意味着该压缩包可能包含了以下内容: 1. **客户端代码**:这部分可能是使用CEFSharp的C#或VB.NET代码,用于设置CEFSharp浏览器环境,并通过JSBridge与JavaScript交互。JSBridge是CEFSharp提供的一种机制,允许C#代码调用JavaScript函数或者反之。 2. **服务器端代码**:可能使用了如Node.js、Python的Flask或Django、Java的Spring Boot等后端技术,实现了WebSocket服务器,负责接收和发送WebSocket消息。 3. **前端网页代码**:这部分是HTML、CSS和JavaScript,用于在CEFSharp浏览器环境中展示页面并处理WebSocket连接。JavaScript代码可能使用了WebSocket API来建立和管理与服务器的连接。 在实际操作中,为了使用这个示例,你需要按照以下步骤进行: 1. **解压文件**:将"cefsharp用js获取websocket.zip"解压缩到一个文件夹中。 2. **配置CEFSharp**:确保你的项目已经引用了CEFSharp的相关库,并且配置了CEFSharp的初始化设置,如版本、资源路径等。 3. **加载前端网页**:在CEFSharp浏览器控件中加载包含WebSocket客户端代码的HTML页面。 4. **实现JSBridge**:在C#代码中实现与JavaScript的交互,确保可以调用JavaScript中的WebSocket连接方法。 5. **运行服务器**:启动服务器端代码,确保WebSocket服务正常运行。 6. **调试与测试**:在CEFSharp浏览器中打开网页,检查JavaScript代码是否成功连接到WebSocket服务器,以及数据的收发是否正常。 由于描述中提到了报错,可能需要对这些代码进行调试,找出问题所在,如网络连接问题、JSON序列化错误、服务器端未正确响应等。通过日志输出和断点调试可以帮助定位和解决问题。 这个压缩包提供的示例旨在教你如何利用CEFSharp的JavaScript环境与WebSocket服务器通信,这对于开发具有实时交互功能的桌面应用非常有帮助。通过学习和理解这些代码,你将能够更好地掌握CEFSharp和WebSocket的使用,提高你的跨平台应用开发能力。
2026-05-12 16:33:24 3KB
1
Python_baike_spider_一个非常简单的Python爬虫项目_用于抓取百度百科页面数据_通过requests库发送HTTP请求获取网页内容_使用BeautifulSo.zipACM算法模板与竞赛实战进阶 在当今数字化时代,网络爬虫已成为获取和处理网络数据的重要工具。Python-baike-spider项目是一个基于Python语言开发的简易爬虫工具,其主要功能是抓取百度百科上的页面数据。该项目利用了Python编程语言的高效性与简洁性,通过调用requests库来发送HTTP请求,获取所需网页的内容。requests库作为Python的标准库之一,因其简单的API和强大的功能,成为大多数网络请求项目的首选。同时,为了处理和解析获取的网页内容,该爬虫项目还应用了BeautifulSoup库,这是一个可以从HTML或XML文件中提取数据的Python库,它通过简单易用的方式提供了强大的网页解析功能。 项目中提到的“ACM算法模板与竞赛实战进阶”,虽然与爬虫功能不直接相关,但暗示了该项目的开发者可能具有算法竞赛背景,或该项目可能被设计用于教学目的,以提升学习者在算法设计与数据结构方面的实战能力。附赠资源文档和说明文件可能包含了关于爬虫项目的详细使用说明,以及可能涉及的算法知识或实战案例,为用户提供了一个全面的学习和实操平台。 在开发网络爬虫时,开发者需要注意遵守相关网站的爬虫协议,即robots.txt文件中的规定,以免造成服务器负担或违反法律法规。同时,考虑到网站结构的频繁变动,爬虫程序需要具备一定的健壮性,能够适应网页结构的变化,并且能够处理异常情况,如网络请求失败或网页内容格式变动等问题。 此外,BeautifulSoup库能够有效地解决HTML代码的不规范问题,如标签不闭合、属性缺失等情况,让数据抓取变得更加准确和高效。通过它,开发者可以轻松地遍历、搜索和修改解析树,这为分析和处理网页数据提供了极大的便利。 在项目部署和运行过程中,开发者还需要考虑到程序的异常处理机制,如在请求失败时重试或记录错误日志,以及在数据抓取结束后对数据进行清洗和存储,以满足后续的数据分析或展示需求。对于需要爬取大量数据的情况,还需要考虑使用异步请求、多线程或分布式爬虫等技术来提升爬虫效率。 在处理爬虫抓取的数据时,数据的清洗和格式化是不可或缺的步骤。数据清洗主要是去除无用的字符,如多余的空格、换行符和特殊符号等;数据格式化则涉及到将非结构化的数据转化为结构化数据,如将HTML标签中的文本内容提取出来。在数据清洗和格式化之后,可以将清洗后的数据存储到文件、数据库或其他存储系统中,以便进行进一步的分析或展示。 对于数据的分析和展示,Python提供了丰富多样的数据处理和可视化工具,如pandas库可用于数据分析,matplotlib和seaborn库可用于数据可视化。结合这些工具,开发者可以对爬虫抓取的数据进行深度分析和直观展示。 此外,对于网络爬虫的开发和使用,还应该注意爬虫的合法性和道德性问题。开发者应确保其爬虫项目不会侵犯版权、隐私权等合法权益,并且在抓取数据时应遵守相关法律法规和网站使用协议。在某些情况下,合理使用爬虫技术还需要网站管理员的许可。 Python-baike-spider项目作为一款简易的Python爬虫项目,其使用requests库和BeautifulSoup库作为主要工具,能够有效地抓取和处理网页数据。通过该项目,用户不仅可以学习和实践网络爬虫技术,还可以深入理解数据抓取、处理和分析的整个流程。开发者在利用该工具的同时,也应注重合法、合规、高效地应用网络爬虫技术。
2026-05-07 17:17:08 36KB python
1
本文详细介绍了如何获取联通光猫的超级管理员密码,以便进行高级设置如端口映射和QoS。教程以HG6543C型号为例,涵盖了从准备工作到最终解密的完整流程。关键步骤包括开启Telnet和FTP服务、生成配置文件、解密密码等。操作过程中需注意还原初始设置以避免影响IPTV功能。文章还推荐使用InsCode平台进行模拟演示,便于实时查看每个环节的执行效果。整个流程需要耐心和细致,确保每个步骤正确执行。 联通光猫作为一种常见的网络设备,在使用中可能需要进行高级设置,例如端口映射和QoS等功能,这些设置通常需要设备的超级管理员密码。本文详细介绍了获取联通光猫超级管理员密码的方法和流程,以HG6543C型号为例,为有需要的用户提供了详尽的操作指导。 要获取超级管理员密码,用户需要准备相应的操作条件,包括对光猫设备的基本了解,以及必要的软件工具,比如Telnet和FTP客户端。开启光猫的Telnet和FTP服务是获取密码的关键步骤之一,这两项服务通常出厂时是关闭的。用户需要通过特定的命令或设置来激活这两项服务。 在服务启动之后,生成配置文件成为下一步。配置文件包含了光猫的多种设置信息,其中也包含了加密后的管理员密码。因此,获取这些文件后,用户需要利用解密技术来提取密码。这一环节通常需要专业的解密工具或算法,有些情况下,还可以借助第三方的在线服务或软件平台进行模拟操作和演示。 在操作过程中,用户还需要注意还原初始设置,以免影响到光猫的IPTV功能。由于IPTV服务对于很多用户来说非常重要,操作不当可能导致服务中断,进而影响用户的使用体验。因此,操作前应做好相关备份,并在操作后恢复到初始状态。 此外,文章还推荐了InsCode平台作为模拟演示工具,这可以帮助用户在实际操作前,实时查看每个操作环节的执行效果,从而确保每个步骤的正确性。InsCode平台能够提供一个类似真实环境的模拟场景,帮助用户更好地理解操作流程。 整个获取超级密码的流程相对复杂,需要用户具备一定的耐心和细致度。在执行每个步骤时,确保操作的正确性非常关键,任何小错误都可能导致操作失败,甚至可能对设备造成损害。因此,对于非专业用户来说,在没有足够把握的情况下,建议寻求专业人士的帮助,以免因操作不当造成不必要的损失。 通过上述的详细步骤,用户可以获得联通光猫的超级管理员密码,进而进行进一步的高级设置,以优化网络使用体验。整个过程要求用户有一定的技术基础和操作经验,同时也需要对设备的使用有一定的了解。对于有志于深入了解光猫设备或进行网络优化的用户来说,掌握这些技能是十分有帮助的。
2026-05-01 11:34:11 6KB 软件开发 源码
1
在当前全球化和互联的背景下,航空运输成为联系世界各地的重要方式,而对于全球范围内的机场进行统一管理和标识变得尤为重要。IATA代码,即国际航空运输协会(International Air Transport Association)代码,是全球民用航空业中用于机场和航空公司的唯一识别码。这些代码通常由两位字母组成,由IATA专门制定和分配,以确保每个机场在全球范围内都有一个独一无二的代码,从而简化航空运输中的信息交换和处理。 随着航空网络的不断扩展,全球机场数量日益增加,获取完整的全球所有机场的城市IATA代码成为许多企业和个人的需求。为了满足这一需求,已有专门的文件资料,如“china_airports_iata_cn.json”,其中包含了中国国内所有机场的城市IATA代码,能够直接用于查询和使用。 对于需要国外地区IATA代码的用户来说,文件资料中也提供了操作说明,便于用户根据说明进行相应的获取和使用。这一文件资料的发布,不仅为专业人士提供了便利,也为一般公众提供了了解全球航空信息的渠道。在航空售票、行程规划、物流管理等领域,这些信息都是至关重要的参考数据。 此外,IATA代码的普及使用对于提高航空运输的效率起到了不可忽视的作用。机场和航空公司的员工在处理票务、行李、货物等方面,通过使用IATA代码,可以大大减少信息处理的时间和出错率。对于旅客而言,IATA代码在订票、登机等环节提供了便利,使得航空旅行变得更加顺畅。同时,这些代码也是各大航空公司和机场之间进行合作与交流的基础,有助于提升整个航空行业的服务质量。 在技术层面,IATA代码的普及促进了航空信息技术的发展,特别是在电子订票系统、航班控制系统、机场运营管理系统等方面的应用。这些技术的应用不仅提高了工作效率,也提高了航空运输的安全性。例如,航班运行的实时监控、行李跟踪和定位、乘客服务的个性化定制等功能,都是基于IATA代码的准确信息交换来实现的。 全球所有机场的城市IATA代码是航空运输系统中的核心元素,它不仅代表了一个机场的国际标准化标识,而且是全球航空业高效、有序运行的基础。随着全球航空业的不断进步,这些代码的重要性将会进一步增强,对于促进全球航空业的发展和国际旅行的便利性发挥着至关重要的作用。
2026-04-29 20:09:42 28.27MB
1
QQ群成员获取工具是一款专为QQ用户设计的实用软件,其主要功能是帮助用户批量获取并导出QQ群中的成员信息,包括QQ号码等关键数据。这个工具在管理和分析QQ群成员时能提供很大的便利,尤其对于那些需要进行大规模群发消息或者需要统计群成员数据的用户来说,它的价值不言而喻。 我们要理解“心脏QQ群成员获取器V1.3”这一名称的含义。"心脏"可能是指该工具的核心功能,即提取QQ群成员信息,而"V1.3"则表示这是该软件的第1.3版本,意味着它经过了多次迭代和优化,可能存在更多的功能和性能提升。 该工具的主要工作流程可能包括以下步骤: 1. **连接QQ账号**:用户需要输入自己的QQ账号和密码,通过安全验证后,工具会与腾讯服务器建立连接。 2. **选择目标群组**:用户可以指定一个或多个需要获取成员信息的QQ群。 3. **数据抓取**:工具会遍历所选群组,提取每个成员的QQ号码和其他相关信息(如昵称、备注等)。 4. **数据导出**:抓取到的数据会被整理成可读格式(如CSV或Excel),方便用户进一步处理和分析。 在安全方面,用户需要注意的是,虽然这类工具提供了便利,但使用时可能会涉及隐私问题。根据腾讯的服务协议,未经同意获取他人的QQ号码可能违反用户协议,因此在使用时应确保遵循相关法律法规,尊重他人的隐私权。 压缩包内的文件“QQ群成员获取工具.exe”是该软件的可执行程序,用户可以通过双击运行来启动工具。而“说明.txt”文件很可能是包含软件使用指南、注意事项或者版本更新等内容的文字说明,对于初次使用的用户来说非常重要,因为它可以帮助用户正确理解和操作软件。 在实际应用中,这个工具可以用于多种场景,例如: - 社群管理:群管理员可以定期备份群成员名单,便于管理和统计。 - 营销推广:网络营销人员可以利用这些数据进行定向推广,但需注意合法性和合规性。 - 数据分析:研究者可能对QQ群的用户群体特征感兴趣,这些数据可以作为研究的基础。 心脏QQ群成员获取工具V1.3是一个帮助用户高效获取QQ群成员信息的实用工具,但使用时需谨慎,确保操作合法且尊重他人隐私。同时,持续关注软件的更新和维护,以便获取更好的使用体验和更全面的功能。
2026-04-26 09:19:58 1.23MB
1
在Android平台上开发应用程序时,与社交媒体平台如新浪微博的集成是一个常见的需求。本示例项目着重展示了如何在Android应用中实现新浪微博的登录、获取用户信息、关注及取消关注等功能。以下是对这些关键知识点的详细说明: 1. **微博API接入**: 新浪微博提供了面向开发者的一系列API接口,允许第三方应用与其平台进行交互。在Android应用中,我们需要先在微博开放平台注册应用,获取App Key、App Secret等关键信息,这些是后续请求的基础。 2. **OAuth2.0授权**: 新浪微博使用OAuth2.0进行用户授权。登录过程涉及引导用户跳转到微博的授权页面,用户同意授权后,服务器会返回一个Access Token。这个Token是临时的,用于代表用户的权限,后续所有与微博API的交互都需要携带此Token。 3. **登录功能**: 在Android应用中,我们通常会创建一个WebView或者使用系统浏览器打开授权页面,用户输入微博账号密码后,通过回调机制将Access Token返回给应用。应用需妥善存储这个Token,以便后续使用。 4. **获取个人信息**: 拥有Access Token后,应用可以调用微博API获取用户的个人信息,包括昵称、头像、uid等。这些信息可以用于展示在应用内,提升用户体验。 5. **存储证书**: 对于长期使用的应用,为了减少频繁的授权步骤,可以考虑存储用户的身份证书(如Access Token)。Android提供了SharedPreferences或SQLite等本地存储方式,用于持久化这些数据。 6. **加关注与取消关注**: 用户在应用中对其他用户进行关注或取消关注操作,需要调用微博API的相关接口。这通常涉及到POST请求,包含目标用户的uid以及Access Token。 7. **网络请求库**: 在Android中,发送HTTP请求通常会使用如Retrofit、Volley、OkHttp等网络请求库。它们简化了网络请求的编写,提供了异步处理、缓存等功能,方便开发者处理网络数据。 8. **文件结构**: 压缩包中的`com_weibo_android_example`和`com_weibo_android`可能分别代表了项目的源码示例和相关的库文件。`readme.txt`通常包含项目简介、使用指南或注意事项,对于理解示例的运行和修改至关重要。 在实际开发中,需要注意的是,由于微博的API策略可能会变化,开发者需要定期检查最新的开发者文档以保持代码的兼容性。此外,对于敏感操作如用户授权和信息获取,要遵循隐私政策,确保用户数据的安全。
2026-04-16 00:10:15 2.01MB 新浪微博 Android token
1
易语言是一种专为中国人设计的编程语言,它以简明的中文语法,降低了编程的门槛。在"易语言取进程精确安全性"这个主题中,我们主要探讨的是如何使用易语言来实现对进程的安全性检查,这包括了获取进程信息、计算MD5值以及处理进程模块等方面的知识。 我们要理解什么是进程。在操作系统中,进程是程序执行时的一个实例,它包含了程序运行所需的所有资源。取进程精确安全性,意味着我们需要获取进程的详细信息,如进程ID、进程名称、父进程信息等,以便分析其行为和状态。 在易语言中,列举进程是一个重要的功能。通过系统调用或API函数,如EnumProcesses,可以列出系统中所有正在运行的进程。这个过程通常涉及到循环遍历每个进程,获取其基本信息,并可能进一步分析其安全性。 获取MD5(Message-Digest Algorithm 5)是另一种安全检查方法。MD5是一种广泛使用的哈希函数,它可以将任意长度的数据转化为固定长度的哈希值。在安全领域,MD5常用来校验文件的完整性,因为相同的文件会有相同的MD5值,而任何数据的改变都将导致MD5值的变化。在易语言中,可以使用第三方库或者自编译的MD5算法来计算进程文件的MD5值,从而判断进程文件是否被篡改。 取模块路径则是指获取进程加载的动态链接库(DLL)或其他模块的路径。这对于了解进程的依赖关系和可能的恶意行为至关重要。Windows API函数如GetModuleFileName可以帮助我们获取这些信息。 创建快照是另一种分析进程的方法。在Windows系统中,CreateToolhelp32Snapshot API可以创建一个进程或线程的快照,用于后续的遍历和分析。快照可以在不干扰目标进程的情况下获取其状态,这对于调试和监控非常有用。 OpenProcess函数是Windows API的一部分,它用于打开已存在的进程对象,从而获取对进程的访问权限。这可能是为了读取进程内存、修改进程状态或进行其他操作。 模块1可能是指源码中的第一个模块或核心模块,它包含了一些基础功能,如初始化、列举进程的基本方法等。 "易语言取进程精确安全性"涉及了易语言编程、Windows API调用、进程管理、哈希计算以及安全分析等多个方面的知识。理解和掌握这些技能,有助于开发者编写出能够检测和防止恶意行为的软件,提高系统的安全性。
1
易语言是一种基于中文编程的计算机程序设计语言,旨在降低编程难度,让更多人能参与到编程活动中。在易语言中,处理操作系统级别的任务,如获取进程信息和时间,通常需要调用系统API函数。以下是对"易语言取进程时间"这一主题的详细解释: 一、取进程时间 取进程时间是指获取特定进程运行的时间,包括进程启动后到当前时刻的总时间,以及进程执行的用户模式时间和内核模式时间。在易语言中,这通常通过调用Windows API中的`GetProcessTimes`函数实现。该函数可以获取进程的创建时间、退出时间、用户模式时间以及内核模式时间。 二、获取进程 获取进程信息涉及到对操作系统进程的管理,这需要使用`OpenProcess`函数来获取一个进程的句柄。此函数需要进程ID作为参数,返回一个表示进程的句柄,后续可以通过这个句柄进行各种操作,如读取进程信息。 三、获取信息 获取进程信息包括进程ID、进程名、进程优先级、内存使用情况等。在易语言中,可以使用`QueryProcessInformation`或`NtQueryInformationProcess`函数获取这些信息。例如,要获取进程ID,可以调用`GetCurrentProcessId`函数;要获取进程名,可能需要结合`OpenProcess`和`GetModuleBaseName`函数。 四、时间结构转换 在易语言中,时间数据通常以结构体的形式存在,如`FILETIME`结构体,它表示64位的100纳秒时间单位。要将这种时间结构转换为人类可读的格式,如本地日期和时间,可以使用`FileTimeToLocalFileTime`和`FileTimeToSystemTime`函数,最后再通过`SystemTimeToTzSpecificLocalTime`将其转换为本地时区的时间。 五、到本地时间 将获取的进程时间从系统时间转换为本地时间,需要使用`FileTimeToSystemTime`和`SystemTimeToTzSpecificLocalTime`这两个函数。前者将`FILETIME`结构转换为`SYSTEMTIME`结构,后者将`SYSTEMTIME`结构转换为考虑到夏令时的本地时间。 六、创建快照 在Windows中,可以使用`CreateToolhelp32Snapshot`函数创建一个进程快照,用于枚举和查询系统中的进程和线程。快照提供了一个在某一时间点上的系统状态,可以在之后通过`Process32First`和`Process32Next`函数遍历快照中的进程信息。 "易语言取进程时间"涉及的主要知识点包括:调用系统API、处理进程句柄、获取和转换时间数据、以及枚举系统进程。这些技术可以帮助开发者了解系统中进程的运行状态,对优化程序性能、调试或监控系统行为等方面具有重要意义。
1
易语言动态获取易包子程序源码,动态获取易包子程序,易包子程序1,子程序1,子程序2,子程序3,子程序4,子程序5,子程序6,子程序7,子程序8,子程序9,子程序10,子程序11,子程序12,Getmd5,GetEpkAddress,movsx,EPK调用子程序,EPK调用子程序_____,取模块句柄_,取进程地
2026-04-09 21:47:25 7KB
1