get string from win32 dll in .NET

using System;

using System.Runtime.InteropServices;

 

[DllImport("kernel32")]

public
static
extern
IntPtr
LoadLibrary(string
lpFileName);

[DllImport("kernel32")]

public
static
extern
Boolean
FreeLibrary(IntPtr
hResModule);

 [DllImport("user32.dll",
CharSet = CharSet.Unicode,
EntryPoint = "LoadStringW",
ExactSpelling = true)]

public
static
extern
int
LoadString(

IntPtr
hInstance,

uint
uID,

StringBuilder
lpBuffer,

int
nBufferMax);

 

public
static
String
GetStringResource(IntPtr
hModuleInstance, uint
uiStringID)

{

StringBuilder
sb = new
StringBuilder(255);

            LoadString(hModuleInstance, uiStringID, sb, sb.Capacity + 1);

return
sb.ToString();

}

public static
string
GetWin32Resource(string
componentName, uint
uiResourceId)

{

           
string
str = string.Empty;

           
IntPtr
hMod = LoadLibrary(@"***\test.dll");

     if (hMod !=
null)

            {

                str = GetStringResource(hMod, uiResourceId);

                FreeLibrary(hMod);

            }

     return
str;

}

时间: 2024-11-13 08:46:38

get string from win32 dll in .NET的相关文章

创建Win32 DLL,并在C#里面调用

创建 这是三篇网上收集的技术文章的合集,分别讲解了如何创建Win32 DLL,然后如何在C#里面调用这个DLL的教程. 首先是创建Win32 DLL的文章.讲解这个的文章到处都有,这里给出一篇我看过的:http://www.flipcode.com/articles/article_creatingdlls.shtml.Win32 DLL的创建其实在Visual Studio里面已经给出了比较好的模板,只是需要注意的,有些XXX_API宏并没有把extern "C"加进去,这样会造成在

c#用Treeview实现FolderBrowerDialog 和动态获取系统图标(运用了Win32 dll类库)_C#教程

事情是这样子的.我需要做一个下面的东东: 这个不难啊,然后就用FolderBrowerDialog这个神器,嗯 还不错,刚开始客户用了也很喜欢. 可是过了一段时间之后,客户说 要屏蔽右键功能,他不想让其他通过右键能打开或浏览文件夹,如下面 红色要给屏蔽. 我一开始以为只是一个参数问题,就爽快的答应了客户咯.可是啊后来找啊找 找到天荒地老也木有找到...放弃了,然后改用了TreeView..结果,版本出来了,先截图: 好吧,确实很丑哦.. 复制代码 代码如下: public MyDirectory

Win32 DLL和MFC DLL 中封装对话框

现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题.           1.Win32   DLL               在Win32   DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件.然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义

在WIN32 DLL中使用MFC

最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记   一.修改预编译头文件(stdafx.h) 在stdafx.h文件中添加下面代码,包含一些MFC的头文件,这些可以在一个MFC工程中复制过来 1 #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将为显式的 2 3 #include

在WIN32 DLL中使用MFC库遇到的问题

今天写了一个DLL,DLL中用到的一个类里用到的MSXML的COM组件,所以在DLL中要包含afx.h头文件,也就不可避免的要用到MFC的类库了,但在编译时出现了错误:mfcs42d.lib(dllmodul.obj) : error LNK2005:_DllMain@12 already defined in NetDriverConfig.obj, 在http://topic.csdn.net/t/20010911/10/281452.html 处的贴子里找到了以下回答,试了一个原来是文件里

部署在server 2008 iis7.0的WebServices方法调用win32.dll时出错

问题描述 部署在iis7.0的WebServices的一个方法调用了win32.dll一旦调用这个方法应用程序池也关闭!页面出现无法访问!但是在部署在xpiis5.0的同样的WebServices就可以正常访问.是不是权限问题还是IIS7.0配置问题!是不是iis7.0的安全机制默认禁止调用win32非托管类库.如果是如何配置..请教高手................................. 解决方案

C#如何调用C写的Win32 DLL

1. 首先,在Visual Studio中,我们建立一个Visual C++的项目     类型选择Win32 Project,继续选择Dll类型     该项目取名叫做myDll     1) 添加myDll.h头文件,代码如下: #ifdef A_EXPORTS#define DLL_API __declspec(dllexport)#else#define DLL_API __declspec(dllimport)#endif extern "C" DLL_API void He

关于C#调用Win32 dll的问题。谢谢解答!

问题描述 我自己开发的一个dll,一个函数的参数是char*.但实际上函数内部是将其理解为一个short数组的指针进行处理的.我在C#里面使用[dllimport],重命名的函数参数应该使用String,还是byte[]数组??谢谢. 解决方案 解决方案二:定义成refstring就可以了解决方案三:用refstring就可以了.怎么看不到回复呢?解决方案四:我并不需要dll里面可以更改传入的值内容.而是用byte和String到底应该哪个更合适呢?解决方案五:各位大侠,救救急哈.在线等答案哦.

C#程序实现动态调用DLL的研究

原文:C#程序实现动态调用DLL的研究 C#程序实现动态调用DLL的研究 摘  要:在<csdn开发高手>2004年第03期中的<化功大法--将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决"DLL Hell"提供了一种解决方案.这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也