DLL
junjieking
积极、认真、向上,较好的学习能力。
展开
-
C#如何直接调用非托管代码
<br />C#如何直接调用非托管代码,通常有2种方法:<br />1. 直接调用从DLL导出的函数。<br />2. 调用 COM 对象上的接口方法<br />我主要讨论从dll中导出函数,基本步骤如下:<br />1.使用C#关键字static和extern声明方法。<br />2.将DllImport属性附加到该方法。DllImport属性允许您指定包含该方法的DLL的名称。<br />3.如果需要,为方法的参数和返回值指定自定义封送处理信息,这将重写 .NET Framework 的默认封送处理转载 2011-03-25 16:55:00 · 5362 阅读 · 1 评论 -
ASP.NET中引用dll“找不到指定模块"的完美解决办法
<br />最近继续用ASP.Net来重新开发ACM的Online Judge系统,因为要进行进程的监控,所以自己编写了一个非托管的DLL供ASP.Net调用。<br />我用的是VS2005的开发环境,后来发现使用[DllImport("Judge.dll")]后提示 无法加载 DLL “Judge.dll” 找不到指定的模块<br />我这时是把Judge.dll拷贝到Bin目录下的,但仍然提示找不到DLL,在工程里添加DLL引用的时候,发现添加这个非托管DLL就会令VS2005异常退出(上网搜索后也转载 2011-03-25 16:44:00 · 6241 阅读 · 0 评论 -
C#中调用非托管的DLL及参数传递
?????? 微软的.NET框架的优点之一是它提供了独立于语言的开发平台。你可以在VB、C++、C#等语言中编写一些类,而在其它语言中使用(源于.NET中使用了CLS),你甚至可以从另一种语言编写的类中继承。但是你要是想调用以前的非托管DLL,那又会怎么样呢?你必须以某种方式将.NET对象转换为结构体、char *、函数指针等类型。这也就是说,你的参数必须被marshal(注:不知道中文名称该叫什么,英文中指的是为了某个目的而组织人或事物,参见这里,此处指的是为了调用非托管函数而进行的参数转换)。<br /转载 2011-03-25 16:47:00 · 2331 阅读 · 0 评论 -
如何在VS2008中生成DLL
<br />1 选择new->project->win32 console project;<br /> 在这一步的选框上有一个选项是 create dictionary for solution, 我不知道这个具体是什么作用,选了之后会项目出现两层文件夹,比如你创建一个命名为test的项目,会生成test文件夹,test中包含另一个test文件夹,你的项目实际上放在了内层test文件夹中。选与不选对于后续的创建没有影响。这个的具体作用等我查明白了再补上!<br />2 输入你的文件名字->按下nex原创 2011-03-25 16:58:00 · 1252 阅读 · 0 评论 -
X64上的IIS調用32位的DLL方法
ASP.NET程序在编译的时候默认是Any CPU,即编译的程序可以在X86、X64系统平台上运行。若希望我们的ASP.NET程序运行在X64系统上,我们所要做的仅仅是部署IIS,修改配置。若想程序运行于IIS32位模式下,即运行在.net framwork32位下进行如下配置:1.cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs s原创 2011-06-10 17:33:00 · 6714 阅读 · 5 评论 -
C#通過相對路徑調用C++的dll
首先我们用[DllImport("kernel32.dll")]private extern static IntPtr LoadLibrary(String path);[DllImport("kernel32.dll")]private extern static IntPtr GetProcAddress(IntPtr lib, String funcName);[DllImport("ke原创 2011-06-13 17:11:00 · 3422 阅读 · 0 评论