大家好,今天小编关注到一个比较有意思的话题,就是关于c语言写dll的问题,于是小编就整理了5个相关介绍c语言写dll的解答,让一起看看吧。
C语言如何调用DLL?
C语言可以通过以下步骤调用DLL:1. 首先需要用到Windows API函数LoadLibrary()加载DLL库文件,并返回该DLL的句柄。
2. 然后可以使用GetProcAddress()函数获取DLL***定函数的地址,该函数需要传入DLL句柄和函数名称。
3. 获取到函数地址后,可以将其视为一个函数指针,按照函数原型调用该函数即可。
因此,C语言可以通过LoadLibrary()和GetProcAddress()这两个API函数调用DLL中的函数。
需要注意的是,调用DLL需要注意一些细节,如函数的入参和返回值、函数名称的大小写等问题。
C语言调用DLL方法如下:
首先:创建dll 首先创建一个空的DLL文件,创建方法:新建——项目——Win32控制台程序——然后取个名字——确定——下一步——选择DLL——勾选空白项目。顺利新建了名字为Dll1的项目。项目中有这些东西(VS2017) 添加头文件Dll1.h 在头文件中添加导出函数add函数 #pragmaonce extern34;C"__declspec(dllexport)intadd(inta,intb); //extern "C" 是表示C语言代码
C中如何调用DLL?
(1)编写程序时,你要包含(#include "什么.h") dll文件作者提供 的 头文件(.***件) 。程序里,便和普通函数调用一样,去调用它的函数。
(2)程序编译时,你要链接 dll文件作者提供 的 (.lib文件) 库文件。当然,你可以在源程序里把.lib 名字 写上,编译时自动去链接,例子:#pragma comment (lib, "什么.lib"
)(3)执行时,要有 .dll 文件. 放在当前文件夹或系统文件夹里。
C#如何调用C++编译的Dll?
C++写的编译后的dll不是托管代码,当然不能添加引用了。要调用非托管的dll要先添加using System.Runtime.InteropServices;引用然后在某个类里加入[DllImport("***s.dll", EntryPoint = "get_char", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)
]public static extern char get_char(char a)
; //dll里的你要调用的函数(一些参数的类型要做一些改变比如 CString)接下去 在C#里就可以用这个方法了。
如何用java调用c编写成的DLL?
谢邀,远程方法调用的思路是对的,就是先用C#写一个WCF调用该库,然后Java调用WCF。如果你的库需要返回的数据只是基本类型的,不会很难。如果你需要返回一个自定义类,那么唯一的出路就是放弃。
DLL文件是什么语言编的?
*.dll 一般用 VC,Delphi C# 等开发工具编写 至于要求就是 *.dll 是给自已或别人调用的 如果你要考虑广泛的兼容 比如 你用VC 写的,可以给 VC,Delphi,PB,VB,C# 等语言调用 你的 dll 输出函数传参方式就得按固定方式,一般***用Win32API 类似的 cdel 传参方式 *.dll 有时不仅仅是一些函数库,有些 *.dll 是一个COM或DCOM组件,支持 regsvr32 xxx.dll 来注册,这就要求 .dll 中对应的 注册与反注册函数,也就是遵循某个框架。
还有 *.dll 不一定就是放些函数执行代码,*.dll中也可以放数据,如图片或***(还是图片或文字)什么的。
参考一些支持多国语言的程序,换一个dll 就显示的不同国家文字,就是通过不同的*** .dll 来实现的。 最后,*.dll 不一定是 .dll 这个怎么说呢,就是你的程序中用到的 一些数据文件或配置文件或记录文件你也可以命名为 xxx.dll 这样多数据情况普通用户就不会乱改你的配置/记录文件了。
因为相对于 *.ini 文件 .dll 一般用户不是“随意”能用记事本打开来改的。当然不建议这么做。
到此,以上就是小编对于c语言写dll的问题就介绍到这了,希望介绍关于c语言写dll的5点解答对大家有用。