php怎么调用c的动态链接库 写的动态链接库.dll?
浏览量:4666
时间:2023-03-17 04:22:28
作者:采采
如何调用C 写的动态链接库.dll?
假设名为a.dll导出了函数int sum(int a, int b)应这样调用:HMODULE hLib = LoadLibrary(#34a.dll#34)//加载a.dll,这里是假设a.dll与程序放在同一目录typedef int (*funcSum)(int,int)
// 定义函数指针funcSum sum = (funcSum) GetProcAddr
如何创建与调用动态链接库?
动态链接库:dll不必被包含在最终的EXE中,EXE文件执行时可以动态地引用和卸载DLL文件。 同时,静态链接库中不能再包含其他的动态链接库或静态库,而动态链接库中可以包含其他的动态或静态库。 VC 支持的DLL: DLL的编制与具体的编程语言及编译器无关,动态链接库随处可见,VC 支持三种DLL:非MFC动态库、MFC规则DLL和MFC扩展DLL。DLL导出函数(或变量、类)可供应用程序调用;DLL内部函数只能在DLL程序内使用,应用程序无法调用它们。 导出函数的声明 一种在函数声明类型和函数名之间加上“_declspec(dllexport)”。 另外一种采用模块定义(.def)文件声明,需要在库工程中添加模块文件,格式如下: LIBRARY 库工程名称 EXPORTS 导出函数名 DLL的调用 一种静态调用,由编译系统完成对DLL的加载和应用程序结束时DLL的卸载。 另外一种动态调用,由编程者用API函数加载和卸载DLL(DLL加载—DLL函数地址获取—DLL释放)。 所有库工程编译时必须Release Build—set active configuration—选择库工程的release 示例: 一、 函数版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。