1. 编写dll文件!
1.在程序前面加一行代码
#pragma comment(linker,"/dll")
意思是告诉连接器 输出的是dll格式。这个好处是不用手动去修改工程属性。
2.或者vc编译器
新建工程,选择dll工程,然后将你的示范cpp替换他原先的cpp。这样vc会自动设置连接器属性,其中包括输出dll
3.或者手动去修改工程属性,找到输出格式那里,将exe换成dll
建议:用第一个方法吧,看着专业点,用起来也简单。 其中dll编程不是光输出一个dll格式的东西就算完了,因为你用的示范代码,所以不会存在额外问题了。如果你要自己写,还要注意下mian函数入口的名称,以及导入导出函数的格式写法。孙鑫视频确实有章讲的这方面,挺清晰。一般 windos编程教程书也会写dll编程部分,楼主要是想深究可以去查阅下。
其实dll编程 就多了一丁点东西而已,不是很复杂。
2. 易语言怎么写dll呢
你好,这个问题很好实现的。
请按以下步骤操作
1、打开易语言
2、新建 - Windows动态链接库
3、在程序集1处新建一个子程序并且命名,同时要把该子程序的公开选项打勾
4、在子程序中写DLL的代码。
5、静态编译成DLL文件。
如果还不懂的话可在网络搜一下易语言DLL制作。一大堆的教程例程。
希望我的回答对你有所帮助!Kiss灬小猪
3. C++写DLL易语言调用问题
在dll.def文件写
EXPORTS
add
在dll.cpp文件写
int _stdcall add(int a, int b)
{
return a+b;
}
在易语言中插入dll命令
.版本 2
.DLL命令 DLL命令1, 整数型, "dll.dll", "add"
.参数 a, 整数型
.参数 b, 整数型
4. C++ win32生成DLL文件供其他程序调用该怎么生成求步骤
如果你使用的是VISUAL STUDIO
1、从“文件”菜单中,选择“新建”,然后选择“项目…”。
2、从“项目类型”窗格中选择“Visual C++”下的“Win32”。
3、从“模板”窗格中,选择“Win32 控制台应用程序”。
4、为项目选择一个名称,如“MathFuncsDll”,并将其输入“名称”字段。为解决方案选择一个名称,如“DynamicLibrary”,并将其输入“解决方案名称”字段。
5、按“确定”启动 Win32 应用程序向导。在“Win32 应用程序向导”对话框的“概述”页中,按“下一步”。
6、从“Win32 应用程序向导”中的“应用程序设置”页中,选择“应用程序类型”下的“DLL”(如果可用),或者选择“控制台应用程序”(如果“DLL”不可用)。某些版本的 Visual Studio 不支持使用向导创建 DLL 项目。您可以稍后对此进行更改,以将项目编译为 DLL。
7、从“Win32 应用程序向导”的“应用程序设置”页中,选择“附加选项”下的“空项目”。
VC6.0下
1、编写非MFC的DLL库
(1) VC6.0下建立Win32 Dynalmic-Link Library工程mydll。
(2)工程下创建一个mydll.h头文件和mydll.cpp实现文件。
mydll.h头文件如下:
#ifndef MYDLL_H#define MYDLL_H
#ifdef DLL#define EXTERN extern "C" _declspec(dllexport)#else#define EXTERN extern "C" _declspec(dllimport)#endif
EXTERN int myadd(int, int);
#endif
mydll.cpp实现文件如下:
#define DLL#include "mydll.h"
int myadd(int a, int b){ return a+b;}
(3)编译生成DLL动态库mydll.dll
2、创建一个调用DLL库的应用程序testapp
(1)在VC6.0下建立Win32 Console Application工程,在下一步选择简单应用程序。
(2)修改testapp.cpp文件,实现调用mydll.dll动态库中的函数myadd。实现如下:
#include "stdafx.h"#include <stdio.h>#include <windows.h>typedef int (*padd)(int, int);
int main(int argc, char* argv[]){ HINSTANCE handle = ::LoadLibrary("../../mydll/debug/mydll.dll");//mydll.dll动态库路径 if(handle != NULL) { padd pf = (padd)GetProcAddress(handle,"myadd"); if(pf != NULL) { printf("dll myadd(3,2) = %d", pf(3,2)); }
::FreeLibrary(handle);
} return 0;}
(3)编译生成exe应用程序testapp.exe。
(4)运行testapp.exe,结果如下:
dll myadd(3,2) = 5
5. 易语言API和DLL教程!
说白了 DLL就是API API就是DLL 你首先不要管DLL是什么 API是什么 等你会用后在去简单 记住简单的了解下 他们的性质有哪些不同 其实用法是一样的 如果你一开始就去深度了解API,和DLL 那样只能是吧问题搞成复杂化
DLL是好比是个封装的程序,需要调用才能使用
API我们可以这样理解是系统自带的一个DLL 懂了吧 你只要了解DLL API 就差不多了解了 前面已经说到了 你不要管他们2个是什么意思 先要会用
易语言里的DLL文件名:是可以自定义的,你可以随便改名字,返回类型它(API.DLL)本身返回的是什么类型就写什么类型.
易语言里的DLL库文件名:就是(API.DLL)的名字,就好比是编译出来的程序的名字
易语言里的DLL库中对应的文件名:就是(API.DLL)里面的子程序名字。
首先怎么写DLL 我告诉你怎么写 给个源码你 上面标示的很清楚
6. 有没有c#的关于.dll文件制作的书籍或视频
一、写在前面
C# 语言是一种简单但功能强大的编程语言,用于编写企业应用程序。
C# 语言从C和 C++语言演化而来,在语句、表达式和运算符方面使用了许多 C++ 功能。
C# 语言在类型安全性、版本转换、事件和垃圾回收等方面进行了相当大的改进和创新。
C# 语言提供对常用 API 样式(如 .NET 框架、COM、自动化和 C 样式 API 等)的访问。
什么是动态链接库?DLL三个字母对于你来说一定很熟悉吧,它是Dynamic Link Library 的缩写形式,动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。
和大多数程序员一样,你一定很使用过DLL吧。也曾感受到它的带给你程序设计和编码上的好错吧今天我想和大家探讨一个主题:如何在C#创建和调用DLL(动态链接库), 其实在很大意义上而讲,DLL让我更灵活的组织编写我们的应用程序,作为软件设计者,可一个根据它来达到很高的代码重用效果。下面我来介绍一下在C#中如何创建和调用DLL。
二、准备工作
我们需要对我们接下来要做的事情做个简单的介绍,在本文我们将利用C#语言创建一个名为 MyDLL.DLL的动态链接库,在这个动态链接库文件中我们将提供两个功能一个是对两个参数交换他们的值,另一个功能是求两个参数的最大公约数。然后创建一个应用程序使用这个DLL。运行并输出结果。
三、创建DLL
让我们创建以下三个C#代码文件:
1、 MySwap.cs
using System;
namespace MyMethods
{
public class SwapClass
{
public static bool Swap(ref long i,ref long j)
{
i = i+j;
j = i-j;
i = i-j;
return true;
}
}
}
2、 MyMaxCD.cs
using System;
namespace MyMethods
{
public class MaxCDClass
{
public static long MaxCD(long i, long j)
{
long a,b,temp;
if(i>j)
{
a = i;
b = j;
}
else
{
b = i;
a = j;
}
temp = a % b;
while(temp!=0)
{
a = b;
b = temp;
temp = a % b;
}
return b;
}
}
}
}需要注意的是:我们在制作这两个文件的时候可以用Visual Studio.NET或者其他的文本编辑器,就算是记事本也可以。这两个文件虽然不在同一个文件里面,但是他们是属于同一个namespace(名称空间)这对以后我们使用这两个方法提供了方便。当然他们也可以属于不同的名称空间,这是完全可以的,但只是在我们应用他们的时候就需要引用两个不同的名称空间,所以作者建议还是写在一个名称空间下面比较好。
接下来的任务是把这两个cs文件变成我们需要的DLL文件。方法是这样的:
在安装了Microsoft.NET Framework的操作系统上,我们可以在Windows所在目录下找到Microsoft.NET目录。在这个目录下面提供了C#的编译器,CSC.EXE
运行:csc /target:library /out:MyDLL.DLL MySwap.cs MyMaxCD.cs
完成后可在本目录下面找到我们刚才生成的MyDLL.DLL文件
/target:library 编译器选项通知编译器输出 DLL 文件而不是 EXE 文件。后跟文件名的 /out 编译器选项用于指定 DLL 文件名。
如果/out后面不跟文件名编译器使用第一个文件 (MySwap.cs) 作为 DLL 文件名。生成的文件为MySwap.DLL文件
OK!我们创建动态链接库文件的任务完成了,现在是我们享受劳动成果的时候了,下面我将介绍如何使用我们所创建的动态链接库文件。
四、 使用DLL
我们简单写一个小程序来测试一下我们刚才写的两个方法是否正确,好吧,跟我来:
MyClient.cs
using System;
using MyMethods;
//这里我们引用刚才定义的名称空间,如果刚才的两个文件我们写在两个不同的名称空间
class MyClient
{
public static void Main(string[] args)
{
if (args.Length != 2)
{
Console.WriteLine("Usage: MyClient <num1> <num2>");
return;
}
long num1 = long.Parse(args[0]);
long num2 = long.Parse(args[1]);
SwapClass.Swap(ref num1,ref num2);
// 请注意,文件开头的 using 指令使您得以在编译时使用未限定的类名来引用 DLL 方法
Console.WriteLine("The result of swap is num1 = {0} and num2 ={1}",num1, num2);
long maxcd = MaxCDClass.MaxCD(num1,num2);
Console.WriteLine("The MaxCD of {0} and {1} is {2}",num1, num2, maxcd);
}
}
若要生成可执行文件 MyClient.exe,请使用以下命令行:
csc /out:MyClient.exe /reference:MyLibrary.DLL MyClient.cs
/out 编译器选项通知编译器输出 EXE 文件并且指定输出文件名 (MyClient.exe)。/reference 编译器选项指定该程序所引用的 DLL 文件。
五、执行
若要运行程序,请输入 EXE 文件的名称,文件名的后面跟两个数字,例如:
MyClient 123 456
六、输出
The result of swap is num1 = 456 and num2 = 123
The MaxCD of 456 and 123 is 3
第二种方法:用vs2005 制作类库
在新建里选择类型是类库,呵呵,然后你就写类啊,写好后生成就就行,生成的dll在Debug文件夹里
7. VB写应用程序DLL的教程
在网上找到这个软件
Banasoft
Make
Expert
安装后插件后,你写的DLL可以被其他语言访问(比如VC),具体用法看看使用说明。
8. 易语言dll注入教程
.版本2
.支持库shell
.支持库spec
.程序集窗口程序集1
.程序集变量输入法句柄
.子程序__启动窗口_创建完毕
热键.注册(_启动窗口.取窗口句柄(),,#Home键,&子程序1)
.子程序子程序1
.局部变量bool,逻辑型
bool=进程是否存在(“DNF.exe”)
.如果真(bool)
输入法.激活(取句柄2(“DNF.exe”,,),输入法句柄)
.如果真结束
.子程序输入法注DLL
写到文件(取特定目录(10)+“SouGoo.ime”,#Shurufa)
输入法句柄=输入法.安装(取特定目录(10)+“SouGoo.ime”,“JSCK专用注入”)
调试输出(输入法句柄)
.如果真(输入法句柄≠0)
输入法.设置注入(取特定目录(10)+“Sougoo.ime”,路径编辑框.内容)
信息框(“------------加载成功------------”+#换行符+“请用Home呼出外挂”+#换行符+“------呼不出来请用Ctrl+Shift切换输入法呼出------”,#信息图标,“系统信息”)
窗口禁止关闭(_启动窗口.取窗口句柄(),真)
.如果真结束
.子程序_按钮1_被单击
.局部变量bool,逻辑型
bool=通用对话框1.打开()
.如果(bool)
路径编辑框.内容=通用对话框1.文件名
输入法注DLL()
.否则
信息框(“请选择一个DLL文件!”,#信息图标,“系统信息”)
.如果结束
.子程序_按钮2_被单击
.局部变量bool,逻辑型
输入法.清除注入(取特定目录(10)+“Sougoo.ime”)
bool=输入法.卸载(输入法句柄)
.如果(bool)
信息框(“卸载成功!”,#信息图标,“系统信息”)
.否则
信息框(“卸载失败!”,#信息图标,“系统信息”)
.如果结束
窗口禁止关闭(_启动窗口.取窗口句柄(),假)
.子程序__启动窗口_将被销毁
输入法.清除注入(取特定目录(10)+“Sougoo.ime”)
输入法.卸载(输入法句柄)

9. VB 怎么编写DLL
编写API类型的DLL请看我后面的哪个文章,不明白的可以网络HI我,我实验成功了
1-4问题,原因是ActiveX DLL 本质是一个控件,所以你使用它就必须像使用控件一样引用,才可以
5、可以,但是这样DLL很难封装API一类的函数,有点类似于自定义控件的效果。
6、可以,见下面的文章
怎样用VB编写.DLL动态链接库文件
VB中创建的DLL只是COM组件,无法作为输出函数的DLL,其实这只是个错误的说法。其实MS非常狡猾,如果你是个VB疯狂发烧友的话,应该早就狂试出这种可以创建输出函数的DLL的方法。
VB编译文件实际上采取了两次编译的方法,首先是调用C2.exe产生*.OBJ文件,然后调用Link.EXE连接。如果在LINK的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VB在Build完成后会将OBJ文件删除,这样就无法手动通过Link来创建我们需要的DLL了。不过我找到一个比较龌鹾的变通的方法,就是先创建一个Exe工程,在Form_Load事件里面写下面的语句:
Sub Main
If MsgBox("哈哈", vbOKCancel) = vbOK Then
Shell "link2.exe " & Command$
End If
End Sub
然后编译为LinkTemp.EXE,接下来将LINK.EXE改名为Link2.exe,将LinkTemp.EXE改名为Link.EXE。这样在VB调用Link.EXE时会弹出对话框,处理就会中断。这时就可以有机会将OBJ文件拷贝出来了。
然后我创建了一个ActiveX DLL工程,在这个工程里面添加一个Mole并创建一个Public函数mathadd:
Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long
mathadd = a + b
End Function
编译这个工程,在Link的时候就会中断。然后把创建的Class1.obj、Mole1.obj、Project1.obj备份出来。
然后就可以调用Link2.exe连接OBJ到DLL了,我的连接代码是:
Link2.exe "e:\vbdll\Class1.obj" "e:\vbdll\Mole1.obj" "e:\vbdll\Project1.obj" "E:\Program Files\Microsoft Visual Studio\VB98\VBAEXE6.LIB" /ENTRY:__vbaS /EXPORT:mathadd /OUT:"e:\vbdll\ProjectOK.dll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,4.0 /VERSION:1.0 /Dll /INCREMENTAL:NO /OPT:REF /MERGE:.rdata=.text /IGNORE:4078
注意里面的/ENTRY和/EXPORT开关,/EXPORT开关声明了输出函数mathadd。这样就大功告成了,可以被其他语言引入,例如在VB中,只需要:
Private Declare Function mathadd Lib "e:\vbdll\ProjectOK.dll" (ByVal a As Long, ByVal b As Long) As Long