包含目录,库目录,环境

来源:互联网 发布:tcl l32f3300b 网络 编辑:程序博客网 时间:2024/05/18 00:56



    一般在使用开源代码,比如boost或者是自己写的dll的时候,用包含目录,库目录会很方便。

   如果需要加载dll,那么就需要在录目录下加上dll的路径,好处是可以省掉复制粘贴或者别的麻烦,直接使用dll,那么在使用dll的时候,一般都会有头文件暴露出来dll中所包含的文件,那么包含目录即需要将这些头文件的目录加进来,这样才可以找到头文件,从而调用到其中的函数。


  

    比如你写的是一个win32的控制程序,且调用了别的dll,那么在运行的时候,它可能会提醒说


缺少某某dll,那么就需要在环境这个变量这里加上需要的dll的路径,一般的格式为path = $(path);$(SRC_BOOST);


下面在说一下环境变量,环境变量其实就是一些个可以理解为是c中的宏的一个东西,只不过这个是操作系统下定义的,

环境变量的设置方式



好处是如果此程序与别人共享,那么使用环境变量比较方便,只要让别人也定义这么个变量即可,至于变量的内容当然是因人而异,因机器而异了。


加载dll的方式包括动态和静态两种方式。

静态的话就是直接包含dll,lib文件来的。

动态的话,可以这样

hdll = LoadLibrary(“dll名称”);

先使用此方法将dll文件读进来,返回一个句柄,需要判空,如果是空,需要调用FreeLibrary(hdll )释放;

然后如果要使用其中的某一个函数需要这样

GetProcAddress();需要使用这个函数来获取一个函数指针,其实也就是函数的地址来调用它。

使用方式FUN = (fun)GetProcAddress(hdll , “fun”);

_fn_set_stop_restrainswitch = (FN_SetStopRestrainSwitch)GetProcAddress(_hmod,"SendCmdForSetStopRestrainSwitch");

FN_SetStopRestrainSwitch为函数指针,_fn_set_stop_restrainswitch 为此函数指针变量

FUN是一个函数指针,引号内的为函数名称,在调用的时候使用FUN(参数列表)即可调到fun()函数


注意,当然每次操作之后都需要判空,如果是空,需要FreeLibrary(hdll)释放掉指针,最后使用结束也是一样的。

0 0
原创粉丝点击