在C#中,通过Windows API函数读取标准的Win32 DLL文件中的字符串资源

下面的代码以读取 user32.dll 文件中的ID号为712的字符串资源。

如果代码运行正常的话,应该可以看到

/*

Other people are logged on to this remote computer.  Shutting down Windows might cause them to lose data. Also, someone at the remote location will have to restart the computer manually./r/n/r/nDo you want to continue shutting down?

如果是中文版的XP,此处的字符串则不同

*/

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Text;

namespace LoadLibrary
{
    public static class Program
    {
        [DllImport("kernel32.dll", EntryPoint = "LoadLibraryA")]
        public static extern IntPtr LoadLibrary(string sLibName);
        [DllImport("kernel32.dll", EntryPoint = "FreeLibrary")]
        public static extern int FreeLibrary(IntPtr hLib);
        [DllImport("user32.dll", EntryPoint = "LoadStringW", CharSet = CharSet.Ansi)]
        public static extern int LoadString(IntPtr hLib, uint resID, byte[] buf, int bufSize);

[STAThread]
        static void Main(string[] args) {
            IntPtr hDll = LoadLibrary("USER32.DLL");
            if(hDll == IntPtr.Zero){
                MessageBox.Show("Can't load library!");
                return;
            }
            byte[] sb=new byte[1024];
            int ret=0;
            ret=LoadString(hDll,712,sb,1025);
            if(ret == 0){
                MessageBox.Show("String resource 712 is not found!");
                FreeLibrary(hDll);
                return;
            }
            MessageBox.Show("String Resource 100: " +Encoding.Unicode.GetString(sb).Replace("/0",""));
            FreeLibrary(hDll);
            return;
        }
    }

}

//运行环境:VS2008 (.NET2.0) 下通过

转载于:https://www.cnblogs.com/hgndinfo/archive/2009/07/03/2713848.html

C#读取Win32标准DLL文件中的字符串资源相关推荐

  1. C#读取Win32标准DLL文件中的Bitmap(位图)

    C#通过API函数,读取标准的Win32DLL 文件中的 Bitmap位图文件 using System; using System.Collections.Generic; using System ...

  2. VC6中调用.dll文件中的函数——傻瓜式教程

    决这一问题上的 帮助. 先声明下,我此前从未涉及过Windows 下的编程,所以对于懂了这么点东西就要写篇文章, 大家可不要鄙视啊. 实际上,写这篇文章的最主要原因是,我觉得调用.dll 文件里的函数 ...

  3. html 调用c#dll中的控件,C#实现反射调用动态加载的DLL文件中的方法和在窗体中加载DLL文件的用户控件...

    反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射. ...

  4. python文件读取输出-Python 读写文件中数据

    1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...

  5. python文件读取数据-Python从文件中读取数据

    一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...

  6. 修改VS2010生成的dll文件中的内容

    我的电脑是64为的操作系统,所以先找到下面的路径 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 找到这个文件:ildasm.exe,如 ...

  7. C# 读取根目录的json文件中的某个值

    /// <summary>/// 读取JSON文件/// </summary>/// <param name="key">JSON文件中的key ...

  8. python读取日期_从文件中读取日期和数据(Python)

    我想从文件中读取时间字符串和数据,但是当我使用loadtxt时,我不能同时读取字符串和数字,因为字符串不是浮点型的.所以我尝试使用genfromtxt并使用delimiter=[]+[]+[]作为我所 ...

  9. _Default同时存在于两个dll文件中的解决办法

    编译器错误消息:CS0433: 类型"_Default"同时存在于"c:\Windows\Microsoft.NET\Framework\v2.0.50727\Tempo ...

最新文章

  1. Caused by: org.apache.ibatis.reflection.ReflectionException我碰到的情况,原因不唯一
  2. 12道Python基础字符编码数据类型练习题
  3. 设c语言中 一个int型数据库,最新真实全国二级C选择题真题第1套
  4. Java 删除集合中指定的元素
  5. 华为手机设置页面黑色_华为手机设置里面的这些功能你都知道吗?
  6. python进阶21之actor
  7. python创建一个文本文件_利用python如何实现创建一个文本文件
  8. [中奖]第九届“泰迪杯”挑战赛A题
  9. mysql handler socket_mysql-handlersocket
  10. android禁止屏幕自动旋转_Android 禁止屏幕旋转 屏幕旋转不刷新 Activity 动态更改屏幕方向...
  11. BUCK电感工作模式
  12. 我的架构感悟:从美国宪法学习架构设计原则
  13. java游戏后端日志【6】 -- 初生牛犊不怕虎?
  14. (七)打印机驱动设置—认识打印机接口
  15. 在egret中自制帧动画
  16. R语言参数检验多重比较
  17. 怎么用计算机打出错误,电脑连接打印机怎么一直显示错误怎么办
  18. GBase8S_RSS配置
  19. [bzoj2208][Jsoi2010]连通数
  20. 海康威视热线技术支持面试

热门文章

  1. [转]FPGA的GTP信号PCB布线要点
  2. 伪代码的写法(转载)
  3. 在Sharepoint中批量删除大量条目
  4. Sqlserver2005 with as 实现分页以提高性能
  5. Provider 错误 '80004005' 未指定的错误 的最终解决方法
  6. 第十六周程序阅读(7)
  7. 项目四-用循环求(2)
  8. servlet接收multipart/form-data表单数据
  9. css 中文字旋转,css
  10. Java学习笔记23