c语言编写动态库函数 c语言动态调用函数

怎么在c语言中自己写库函数1、不同c语言编写动态库函数的系统开发函数库c语言编写动态库函数的具体步骤是不一样的c语言编写动态库函数,这主要决定于编译、链接环境 。
2、不同的库开发方式也不一样c语言编写动态库函数 , 现在主流的库开发有两种c语言编写动态库函数 , 一种是静态库,一种是动态库,两者的本质区别是库代码是否和程序融合在一起,如果组装在一起就是静态库,如果不组装在一起,即为动态库,现在操作系统提供的多数是动态库 , 如Linux平台的.so文件,windows平台的DLL文件 。
3、以Windows平台为例,用户可以通过Vc/vs等IDE集成开发环境,生成DLL工程 , 然后编写def文件进行导出 。
C语言编写的动态库中的函数,如何才能被C++调用?有对应的静态库吗?
有的话,加入项目编译,然后把动态库放到运行的地方就可以了 。
如果没有的话,就需要编写代码调用了 。
这里有篇比较好的文章
C语言怎么动态创建函数?C语言可以通过宏,在你需要的位置宏展开出一个新的函数 。
例如:
#define XXX(funcname) \
int funcname (int arg1, int arg2) \
{ return arg1 + arg2; }
但这也是编译期就决定好了的,也不能实现运行期动态创建 。
C语言:如何自己做库函数?简单的一个例子,但是基本的程序编译的思想都在里面了,具体的需要你自己体会和查资料
跟着下面的步骤走
------------------------
第一步:我的电脑-属性-高级-环境变量
添加3个变量
1.名字:path 值:vc的安装目录里面包含cl.exe的bin目录路径+";"+vc目录下包含mspdb80.dll的目录的路径
比如我的是D:\Program Files\Microsoft Visual Studio 8\VC\bin;D:\Program Files\Microsoft Visual Studio 8\Common7\IDE;
2.名字:include 值:vc安装目录下的include目录 , 主要是为了找到头文件,我的是D:\Program Files\Microsoft Visual Studio 8\VC\include;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include;
3.名字:lib 值:vc目录下包含库文件的目录路径
我的是D:\Program Files\Microsoft Visual Studio 8\VC\lib;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib;
第二步:需要下面两个文件
//-------------libdemo.c
#include stdio.h
void lib_func()
{
printf("this routine in lib\n");
}
//------------main.c
void lib_func();
int main(int argc, char *argv[])
{
lib_func();
}
第三步:命令
cl /c libdemo.c'编译libdemo.c 生成libdemo.obj
liblibdemo.obj'生成libdemo.lib 库文件
cl /c main.c'编译main.c
link main.objlibdemo.lib'生成main.exe
---------------------------------------------------
呵呵 加点东西 , 参看4楼的建议,在做个dll,COM组件就不做了,有点复杂了
1 。把libdemo.c 稍微改下
//-------------libdemo.c
#include stdio.h
__declspec (dllexport) void lib_func()
{
printf("this routine in lib\n");
}
2 。命令
cl /c libdemo.c main.c
link libdemo.obj /dll'生成libdemo.lib
link main.obj libdemo.lib
用C语言编写DLL一.动态链接库(dll)结构
——dll中定义有两种函数:导出函数(export
function)和内部函数
(internal
function),导出函数可以被其他模块调用,内部函数只能在dll内部使用 。我们在用c++定制dll文件时,需要编写的就是包含导出函数表的模块定义文件(.def)和实现导出函数功能的c++文件 。下面以sample.dll为例介绍def文件和实现文件的结构:
——1.模块定义文件(.def)是由一个或者多个用于描述dll属性的模块语

推荐阅读