‘壹’ 怎样把C#文件编译成DLL文件
动态链接库 (DLL) 在运行时链接到程序。为说明如何生成和使用 DLL,请看以下方案:
MathLibrary.DLL:为库文件,其中包含运行时要调用的方法。此例中,DLL 包含两个方法:Add 和 Multiply。
Add.cs:为源文件,其中包含 Add(long i, long j) 方法。该方法返回参数之和。包含 Add 方法的 AddClass 类是命名空间 UtilityMethods 的成员。
Mult.cs:为源文件,其中包含 Multiply(long x, long y) 方法。该方法返回参数之积。包含 Multiply 方法的 MultiplyClass 类也是命名空间 UtilityMethods 的成员。
TestCode.cs:包含 Main 方法的文件。它使用 DLL 文件中的方法来计算运行时参数的和与积。
示例
// File: Add.cs
namespace UtilityMethods
{
public class AddClass
{
public static long Add(long i, long j)
{
return (i + j);
}
}
}
// File: Mult.cs
namespace UtilityMethods
{
public class MultiplyClass
{
public static long Multiply(long x, long y)
{
return (x * y);
}
}
}
// File: TestCode.cs
using UtilityMethods;
class TestCode
{
static void Main(string[] args)
{
System.Console.WriteLine("Calling methods from MathLibrary.DLL:");
if (args.Length != 2)
{
System.Console.WriteLine("Usage: TestCode <num1> <num2>");
return;
}
long num1 = long.Parse(args[0]);
long num2 = long.Parse(args[1]);
long sum = AddClass.Add(num1, num2);
long proct = MultiplyClass.Multiply(num1, num2);
System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
System.Console.WriteLine("{0} * {1} = {2}", num1, num2, proct);
}
}
/* Output (assuming 1234 and 5678 are entered as command line args):
Calling methods from MathLibrary.DLL:
1234 + 5678 = 6912
1234 * 5678 = 7006652
*/
此文件包含使用 DLL 方法 Add 和 Multiply 的算法。它首先分析从命令行输入的参数 num1 和 num2。然后使用 AddClass 类中的 Add 方法计算和,使用 MultiplyClass 类中的 Multiply 方法计算积。
请注意,文件开头的 using 指令使您得以在编译时使用未限定的类名来引用 DLL 方法,如下所示:
MultiplyClass.Multiply(num1, num2);
否则,必须使用完全限定名,如下所示:
UtilityMethods.MultiplyClass.Multiply(num1, num2);
执行
若要运行程序,请输入 EXE 文件的名称,文件名的后面跟两个数字,如下所示:
TestCode 1234 5678
编译代码
若要生成文件 MathLibrary.DLL,请使用以下命令行编译文件 Add.cs 和文件 Mult.cs:
csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs
/target:library 编译器选项通知编译器输出 DLL 文件而不是 EXE 文件。后跟文件名的 /out 编译器选项用于指定 DLL 文件名。否则,编译器使用第一个文件 (Add.cs) 作为 DLL 文件名。
若要生成可执行文件 TestCode.exe,请使用以下命令行:
csc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.cs
/out 编译器选项通知编译器输出 EXE 文件并且指定输出文件名 (TestCode.exe)。此编译器选项是可选的。/引用编译器选项指定该程序使用的 DLL 文件。
‘贰’ 将A.cs文件编译成.dll文件
我不知道啊,你加油。。。解决了告诉我\(^o^)/~哎呀,好麻烦无法加载 DLL“MasterRD.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
‘叁’ 在怎样情况下把代码编译成dll文件
如果使用的是VS,可以进行如下操作:
打开VS, 文件-新建-新建项目-其他语言-Visual C++ - Win32 控制台应用程序。
单击确定后,弹出对话框,按照对话框“下一步”提示进行操作。
将要编译的C文件拷贝到CreateDLL项目中,.h文件就放到头文件夹的目录下,.c文件放到源文件目录下,注意后缀名为.c的文件都要改成.cpp,否则编译会出错。
注意:申明函数时必须参照上图红框标示出来的规则,在Function.cpp文件中必须要引入对应的#include CreateDLL.h。
选中所有需要编译成dll的cpp文件,右键-属性-预编译头-不使用预编译头,然后选择 “生成”即可,这样在项目的Debug文件夹下面便可找到CreateDLL.dll文件
‘肆’ swmm怎么编译生成dll文件
如果需要改写SWMM模型的源代码,通常需要重新编译生成新的动态链接库,也就是常说的DLL,将SWMM 5源码编译为DLL的主要步骤如下:
1. 下载SWMM模型计算引擎源代码后解压,里面包含了模型代码源文件。在对代码进行必要的个性化修改后(如果不需要修改代码,就完全没有必要自己重新编译了,安装SWMM软件后,安装文件下就有计算引擎的DLL文件)就可以进行接下来的工作了。
2. 新建工程:以VC6.0为例,点击文件/新建→工程;选择”win32 dynmaic-link library”,输入工程名字,如SWMM 5,在“位置”下输入新工程存储的路径,点击下方的“确定”;
3. 选择“一个空的工程”,点击“完成”;在弹出的对话框中点击“确定”;
4. “工程”菜单中选择“添加到菜单”→文件,然后把文件夹中的包括头文件在内的SWMM源文件(均以.c,.h后缀)全部添加到工程。
5. 在swmm5.c中取消define DLL前的注释,使代码为如下形式:
//#define CLE
//#define SOL
#define DLL
6. 选择“组建”中的“编译 SWMM5 ”,在出现的对话框选择“是”,然后再选择”build”中的”execute swmm5″就完成了整个文件的编译和执行。生成的debug文件夹中有swmm5.DLL。
7. 最后,把swmm5.def文件添加到工程中重新编译一次。
‘伍’ 有没有将exe文件编译成dll文件的工具
不用工具.
打开"我的电脑",在窗口的工具栏上面"工具"-->"文件夹选项"-->"查看"-->
找到"隐藏已知文件类型的扩展名",把前面的"囗"设置为空白,也就是不选,-->确定.
然后,就在你想要改的那个EXE文件重名名,后面加上”.DLL”就行啦.
但此法只是冶标不冶本.
‘陆’ cs怎么编译成dll
dll是人物模型,必须用专门的人物模型编辑器,可以编辑。
‘柒’ 如何把dll文件反编译修改之后的文件编译成dll
你在你的solution中新建一个工程,然后把a.cs,b.cs,c.cs添加到这个工程里面(我建议你新建类,然后把类的代码过去,这样即使命名空间不同也不会造成混乱)
然后再你引用的工程里addreference->project->你新建的这个工程,就可以调用了.
这样如果你需要修改的话直接在ide里修改,可以实时看到效果
‘捌’ 如何编译生成dll文件以及如何调用dll文件
1.vs2015下生成DLL文件
文件->新建->项目
点击确定选择dll选项和空项目选项
点击完成
为项目添加c++源文件mydll.cpp
[cpp] view plain
在CODE上查看代码片派生到我的代码片
extern "C" // 此处extern "c" 为解决c/c++兼容问题
{
_declspec(dllexport)int add(int a, int b)
{
return a + b;
}
extern "C"
{
_declspec(dllexport)int sub(int a, int b)
{
return a - b;
}
}
编译生成 成功后会在工程根目录生成Win32Project1.dll文件
2.对dll文件的调用
显示调用动态链接库
新建C++工程
把生成的 Win32Project1.dll 文件拷贝到 刚才新建的工程目录下
在工程中新建源文件写入代码为
[cpp] view plain
在CODE上查看代码片派生到我的代码片
#include<iostream>
#include<windows.h>
void main()
{
HINSTANCE mydll = LoadLibrary("Win32Project1.dll"); //载入dll文件
if (mydll == NULL)
{
return;
}
int(*add)(int, int) =( int (*)(int ,int )) GetProcAddress(mydll, "add");//获取函数指针
/*
等价于
typedef int(*myadd)(int, int); //给 函数指针int (*)(int, int ) 取别名 myadd
myadd a = (myadd) GetProcAddress(mydll,"add"); //获取函数地址
*/
if (add == NULL)
{
return;
}
std::cout << add(1, 2);
std::cin.get();
}
编译并运行即可。
‘玖’ C++如何编译出DLL文件
如果使用的是VS,可以进行如下操作:
打开VS, 文件-新建-新建项目-其他语言-Visual C++ -Win32 控制台应用程序。
单击确定后,弹出对话框,按照对话框“下一步”提示进行操作。
将要编译的C文件拷贝到CreateDLL项目中,.h文件就放到头文件夹的目录下,.c文件放到源文件目录下,注意后缀名为.c的文件都要改成.cpp,否则编译会出错。
注意:申明函数时必须参照上图红框标示出来的规则,在Function.cpp文件中必须要引入对应的#include CreateDLL.h。
选中所有需要编译成dll的cpp文件,右键-属性-预编译头-不使用预编译头,然后选择 “生成”即可,这样在项目的Debug文件夹下面便可找到CreateDLL.dll文件
‘拾’ 怎样把.cs文件编译成DLL文件
开始--程序--Microsoft Visual Studio.NET 2005--Visual Studio.NET工具,点击其中的“Visual Studio.NET2005命令提示”,就会进入Microsoft Visual Studio.NET 2005命令提示窗口,然后我们用dos命令(cd)进入要编译成dll的cs文件所在的目录,然后输入命令:
csc /out: bin\index.dll /t:library index.cs
回车,就会在bin目录下生成与cs文件同名的dll文件
但是如果这个cs文件引用了bin目录下的另外一个dll文件如comman.dll,则应该这样输入命令:
csc /out: bin\index.dll /r: bin\comman.dll /t:library index.cs