WEB开发网
开发学院软件开发VC 安装钩子,托管C++中的字符串及其它 阅读

安装钩子,托管C++中的字符串及其它

 2006-07-20 11:42:41 来源:WEB开发网   
核心提示: .NET 的处理方式使用文本或 XML 资源文件(.resx)卫星程序集,在 .NET 中有两种资源:字符串和对象,安装钩子,托管C++中的字符串及其它(8),对于字符串来说,你只要创建一个名字=值对( name=value ).txt文件,编译后运行 RefTest 的画面如 Figur

.NET 的处理方式使用文本或 XML 资源文件(.resx)卫星程序集。在 .NET 中有两种资源:字符串和对象。对于字符串来说,你只要创建一个名字=值对( name=value ).txt文件,然后运行 resgen.exe。你的程序要调用 ResourceManager.GetString 来获取字符串。其它的处理包括你得编写一个将对象序列化到 .resx 文件的程序,然后在运行时调用 ResourceManger.GetObject 加载它。具体细节请参考文档或我的文章。在我的我的文章中,我编写 FileRes 类以及一个例子程序 FileResGen 来示范如何做, FileResGen 大大简化了基于文件的资源处理,如:图像文件(.BMP, .GIF, .JPG等等)。

.NET 处理资源的方式其优点在于更容易本地化。只要翻译文本/资源并将它保存在一个子文件夹中,该文件的名字应该与语言缩写名相同——比如:en 代表 English,fr 代表 Franch,或者 kv 代表 Komi。框架会根据用户系统的 CultureInfo.CurrentUICulture 设置自动加载适当的程序集(MFC 使用类似的基于 GetSystemDefaultUILanguage 的卫星动态连接库来处理本地化)。如果你想在 .NET 领域有所作为,那么得用使用卫星程序集和 ResourceManager 重写你的库代码。但是如果本地化并不是很重要(也许你只是加载内部错误信息,这些信息用户看不到)或者工期很短,那么你仍可以按照老方法从 .RC 文件加载串资源。但你得调用 ::LoadString 或在内部使用 CString,加载字符串,然后将它拷贝到调用者的 String 对象。用 C++ 写这样的程序是很爽的事情!你可以直接调用 Windows APIs,不用显式使用 P/Invoke,象往常一样使用你最爱的 ATL/MFC 类。因为你要从 DLL 中加载字符串,而不是从应用程序中加载,所以唯一的诀窍是必须显式地告诉 LoadString 使用你的 DLL HINTANCE:

CString s;
HINSTANCE h = ::GetModuleHandle(_T("MyLib.dll")); // use DLL''s handle
s.LoadString(h, id);

Figure 3 是全部的实现代码。编译后运行 RefTest 的画面如 Figure 5 所示。与往常一样,更多信息和具体实现细节请参考本文例子程序源代码。

Figure 5 RefTest 运行画面馆

顺祝编程愉快!

您的提问和评论可发送到 Paul 的信箱:cppqa@microsoft.com.

上一页  3 4 5 6 7 8 

Tags:安装 钩子 托管

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接