C程序如何调用dll 文件
C# 中如何调用DLL文件的方法是:
有命名空间则引入命名空间,dll里面,是a命名空间,有一个b类,然后有一个无参数静态方法c那么调用方法就是a.b.c()。然后是非托管dll需要添加dll的名称,以及方法,也就是你所用到的dll的每个方法都需要添加一次,[DllImport("msvcrt.dll")] public static extern int puts(string c);
1、新建DLLTest文件夹,在该文件夹中新建source文件夹。
2、在source文件夹中造add.c。
3、win+R+cmd请出总指挥“命令行”,输入。
4、继续输入(路径也要随机应变)link /DLL /out:E:\VCfile\DLLTest\source\add.dll E:\VCfile\DLLTest\source\add.obj。
5、新建源文件call_dll.c或.cpp放到DLLTest文件夹,同时add.dll也复制过来。
6、编译,连接运行出现个5。调用成功。
注意事项:
C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
//dlldemo.h
#ifdef __cplusplus
#define EXPORT extern "C" __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif
EXPORT int add(int a,int b) ;
EXPORT int sub(int a,int b);
新建并添加源文件dllDemo.c
//dlldemo.c
#include <windows.h>
#include "dlldemo.h"
int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved) {
return TRUE ;
}
EXPORT int add(int a,int b) {
return a+b;
}
EXPORT int sub(int a,int b){
return a-b;
}
编译成功后会生成一个dll文件。
再新建一个普通的win32 console工程,工程属性里面的字符集要设为多字节,不要使用Unicode。将dll文件放到目录下面。新建并添加main.c
#include <WINDOWS.H>
#include <WINBASE.H>
#include <stdio.h>
typedef int (*MYPROC)(int, int);
int main()
{
HINSTANCE LibHandle;
MYPROC ProcAdd,ProcSub;
char dllbuf[] = "dll.dll";//dll的路径
char sysbuf[] = "add"; /*过程名*/
char sysbuf1[] = "sub";
LibHandle = LoadLibrary(dllbuf); /*载入dll*/
ProcAdd = (MYPROC)GetProcAddress(LibHandle, sysbuf); /*获取函数sysbuf的地址*/
ProcSub = (MYPROC)GetProcAddress(LibHandle, sysbuf1);
printf("%d\n",(ProcAdd)(3,6));
printf("%d\n",(ProcSub)(3,6));
}
编译执行便可成功。
用的IDE不一样,生成DLL文件的方法也有差异,建议上网查找你所用的IDE生成DLL文件的方法。
***********************************************
这个关键是IDE(比如是VC++还是BCB),C语言在编DLL和其它的程序时都用相同的规则。
***********************************************
看不懂建议暂时就不要自己做了,在这里说和你看网上资料是一样的,而且这里可以说的内容还不及网上多呢。
c语言怎么调用别人的dll文件
程序里,便和普通函数调用一样,去调用它的函数。(2)程序编译时,你要链接 dll文件作者提供 的 (.lib文件) 库文件。当然,你可以在源程序里把.lib 名字 写上,编译时自动去链接,例子:pragma comment (lib, \\"什么.lib\\")(3)执行时,要有 .dll 文件. 放在当前文件夹或系统文件夹里 ...
易语言调用DLL
你新建一个子程序。然后在子程序下添加参数就可以了!调用的话把做好的DLL放到运行目录下。然后调用里插入个DLL然后 设置相关参数和编写时候的参数一样。然后是DLL文件名和子程序名就可以了
易语言如何调用C语言加载的Dll?---请高手指点。
在易语言的左边功能选项找---程序---dl命令--右键---插入新dll命令 DLL命令名=你给他的名称(在窗口程序下可直接代码输入) DLL库文件名=你调用那个DLL命名 DDL库中的对应名=在被调用的DLL的子程序完了后直接在窗口下输入代码(DLL命令名) 打包的时候将DLL放置包下(可减少错误率)...
如何调用matlab生成的dll文件进行编程
通常在实现图像处理的算法时我们使用Matlab编程,因为它具有丰富的库函数以及操作方便,然而在工程项目中通常使用C\/C++语言。如果我们将matlab代码完全重写成C++代码会很麻烦,最好的办法是借助matlab与C\/C++接口将.m程序转成dll文件!一、使用matlab将.m转成dll文件 1、在命令行中输入mex -setup 提示你...
VC调用易语言写的DLL例子
下面我们举例说明,如何制作易语言DLL并在VC中动态调用。1. 首先,制作一个易语言的DLL。打开易语言,弹出向导中选择"windows动态链接库"。现在我们添加自己的函数了。Ctrl+N添加一个函数如下 .版本 2 .子程序 myadd, 双精度小数型, 公开 .参数 a, 双精度小数型 .参数 b, 双精度小数型 返回 (a...
C#里,dll文件如何使用??
建立项目的时候选择类库就行了,编译出来就是DLL。DLL里面保存的是编译好的方法,可以被其他程序在需要的时候调用,而不用再重新写一遍。例如:有一个kinghosky.dll,你在工程里的解决方案资源管理器中右键引用,找到本地磁盘中的dll文件,就可以直接添到你的工程里面,使用方法:你可以先using dll中的...
DLL注入后,如何调用DLL里的函数
你让DLL注入后,在所有初始工作完成后,让他进入一个WHILE(1){...} 在循环体中睡眠,醒后去读各种IPC通信机制,象管道,邮槽,文件印象等实现它与自己的程序通信.甚至可以创建一个隐藏窗口,然后让你的程序向这个窗口发消息控制它,使它调用DLL里的函数.你还可以在DLL里创建一个全局类,把所有的工作都在...
易语言如何调用DLL文件
易语言如何调用DLL文件:天空一声巨响,易语言闪亮登场。打开易语言主程序,弹出“新建对话框”,选择“Windows窗口程序”→“确定”,进入“Windows窗口程序”窗口设计界面。在“_启动窗口”界面绘制一个“按钮”组件并将按钮的标题修改为“相加”,并保存易语言程序源码。然后将欲调用的DLL文件拷贝到易语言...
如何调用dll文件中的函数
你只要找到那个差的文件并复制到当前的文件夹下,就可以了。(那个缺少文件有可能是放在其他文件夹了,你可以查找一下,我的就是这种情况)。第二步:在程序中添加#pragma comment(lib,"sqlite3.lib") ,并且添加相应的头文件(sqlite3.h).第三步:就在程序中调用你想要调用的函数。
dll动态调用和静态调用有什么区别
后在Object\/library modules输入框中输入:youApp.lib 6.选择你的目标工程Head Files加入:youApp.h文件;7.最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include "youApp.h"注:youApp是你DLL的工程名。2.动态调用其程序如下:动态调用时只需做静态调用步骤1.{ HINSTANCE hDllInst = ...
蹉松瑞艾: dll代码:#include extern "C" void _declspec( dllexport ) Msg() { MessageBox(NULL,"hello world!","demo",MB_OK); } 编译完成后把dll命名为fuck.dll ,放到 c盘下.调用dll的exe的代码:#include int main() { HMODULE hdll=LoadLibrary...
德清县14792178281: c语言怎么调用dll文件?我有一个dll文件,叫“rock.dll”.然后里面有一个函数(不知道是 - ?
蹉松瑞艾: typedef int(*GetHDiskCode_t)(xxxxxxx); HMODULE hdll; GetHDiskCode_t proc; int main(){xxxxx; hdll=LoadLibrary("rock.dll); proc=(GetHDiskCode_t)GetProcAddress(hdll,"GetHDiskCode"); myhdid=(*proc)(xxxxxxxxx); }
德清县14792178281: C语言 引用DLL 调用DLL ??
蹉松瑞艾: 首先如果有.lib文件的话,直接在最开始加一句 #pragma comment(lib,"1.lib") 然后声明一下Msgbox函数 比如你的Msgbox函数是 int Msgbox(char * str1,char *str2); 那么你应该 _declspec(dllimport) int Msgbox(char *str1,char *str2); 然后你在函...
德清县14792178281: 在C语言中怎样调用*dll文件,该怎么处理 - ?
蹉松瑞艾: 生成动态库文件后,那么debug目录下会同时又.lib和.dll文件.而你的程序中只需加入#pragma comment(lib, "xxxx.lib")就可以调用.这个是微软的调用方法.在linux下是.so文件;要设置环境变量.话说看书了解下更快.
德清县14792178281: C程序如何调用dll 文件 - ?
蹉松瑞艾: 用的IDE不一样,生成DLL文件的方法也有差异,建议上网查找你所用的IDE生成DLL文件的方法. *********************************************** 这个关键是IDE(比如是VC++还是BCB),C语言在编DLL和其它的程序时都用相同的规则. *********************************************** 看不懂建议暂时就不要自己做了,在这里说和你看网上资料是一样的,而且这里可以说的内容还不及网上多呢.
德清县14792178281: 在C#中如何调用自己写的dll文件??
蹉松瑞艾: 放哪里都可以~~~~~~~~~~~ 然后新建一项目,在项目“引用”上右击,“添加引用”,浏览到你的dll文件上,然后就可以用了~
德清县14792178281: c#如何调用dll文件 - ?
蹉松瑞艾: 可以使用DllImport这个标记,例如我要动态调用User32.dll中的SendMessage函数的话,可以这样来写 [DllImport("user32.dll")] private extern static Intptr SendMessage(Intptr hWnd, int msg, int wParam, int lParam); C#中有一种叫IntPtr类型的变量,它可以看做是保存指针的数据类型
德清县14792178281: 在C++种如何调用dll文件? - ?
蹉松瑞艾: dll和普通可执行程序的区别只在于入口函数而已.其他都一样.exe的入口在启动的时候调用,而且仅此一次;以WinMain形式存在.dll则是会在被进程加载,进程关闭,线程建立和退出的时候都会被调用;以DllMain的形式存在. 如果你用...
德清县14792178281: 你好,我想问问怎样用C语言程序生成DLL,然后在C#中调用?谢谢! - ?
蹉松瑞艾: 新建空的解决方案 -- 添加项目--VC++--Win32项目 -- 输入名字点确认 -- 向导里选下一步 -- 将应用程序类型改为Dll,然后点完成就可以了,在你的源文件cpp里写函数就可以了,写法示例:e www.hbbz08.comxtern "C" __declspec(dllexport) int ...
德清县14792178281: VC中如何调试DLL程序 - ?
蹉松瑞艾: 调试嘛,肯定在Debug模式中由于DLL程序不能生成窗口等等原因不好调试,所以我们无法了解DLL程序的流程是怎么样的.下面简单介绍一个如何来调试DLL程序.应该知道写DLL文件肯定是给某个应用程序使用的,如果没有程序用到它那它...