其中lr中使用dll很简单,主要是lr_load_dll()函数来实现。
我是头一次接触dll,所以又是花了一天的时间才搞定!笨阿!
这里主要简单介绍一下dll的编写。
dll的编写主要分以下部分:头文件编写,导出函数,主程序(包含入口点)
1.头文件中是用来声明函数的,其中可以在这里声明要使用何种语言:
#ifndef sample_h
#define sample_h
extern "C" int desinit(int a, int b)
extern "C" int desdone(int a, int b)
#endif
2.声明导出函数
(1)DLL导出函数,可供应用程序调用;
(2) DLL内部函数,只能在DLL程序使用,应用程序无法调用它们。
;LIBRARY dllname
LIBRARY sample
EXPORTS
;导出函数名
desinit
desdone
编译时,要将这两个文件放到header文件里
3.主程序
这里就可以用c编写你需要的程序了。
其中他的入口点,使默认的缺省函数。如果你只是单线程单进程,就不用编写了。他默认为
BOOL APIENTRY DllMain(HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
return TRUE;
}
编译后,将debug里的*.dll和*.lib文件放到lr的脚步目录下。这样就可以直接调用dll了,可以使用dll中的导出函数。大大提高了效率。