关于静态链接库(Lib)与动态链接库(DLL)

关于静态链接库(Lib)与动态链接库(DLL)
关于静态链接库(Lib)与动态链接库(DLL)

关于静态链接库(Lib)与动态链接库(DLL)

静态链接库(Lib)和动态链接库(DLL)的问题困扰了我很长时间,而当中关键的问题是两者有何联系?又有何区别呢?怎么创建?怎么使用?使用的过程中要注意什么?一直想把这个问题总结一下。

在windows下一般可以看到后缀为dll和后缀为lib的文件,但这两种文件可以分为三种库,分别是动态链接库(Dyna mic-Link Libraries),目标库(Object Li braries)和导入库(Import Libra ries),下面一一解释这三种库。

目标库(Object Li braries)

目标库又叫静态链接库,是扩展名为.LIB的文件,包括了用户程序要用到的各种函数。它在用户程序进行链接时,“静态链接”到可执行程序文件当中。例如,在V C++中最常使用到的C运行时目标库文件就是LIB C.LIB。在链接应用程序时常使用所谓“静态链接”的方法,即将各个目标文件(.obj)、运行时函数库(.lib)以及已编译的资源文件(.res)链接到一起,形成一个可执行文件(.exe)。使用静态链接时,可执行文件需要使用的各种函数和资源都已包含到文件中。这样做的缺点是对于多个程序都使用的相同函数和资源要重复链接到exe文件中,使程序变大、占用内存增加。

导入库(I mport Li braries)

导入库是一种特殊形式的目标库文件形式。和目标库文件一样,导入库文件的扩展名也是.LIB,也是在用户程序被链接时,被“静态链接”到可执行文件当中。但是不同的是,导入库文件中并不包含有程序代码。相应的,它包含了相关的链接信息,帮助应用程序在可执行文件中建立起正确的对应于动态链接库的重定向表。比如KERNEL32.LIB、USER32.LIB和GDI32.LIB就是我们常用到的导入库,通过它们,我们就可以调用Windows提供的函数了。如果我们在程序中使用到了Rec tangle这个函数,GDI32.LIB就可以告诉链接器,这个函数在GDI32.DLL动态链接库文件中。这样,当用户程序运行时,它就知道“动态链接”到GDI32.DLL模块中以使用这个函数。其实说白了导入库就是一个索引,一个dll动态链接库的索引表,这是我的理解。

动态链接库(Dyna mic-Link Libraries)

“动态链接”是将一些公用的函数或资源组织成动态链接库文件(.dll),当某个需要使用dll中的函数或资源的程序启动时(准确的说是初始化时),系统将该dll映射到调用进程的虚拟地址空间、增加该dll的引用计数值,然后当实际使用到该dll时操作系统就将该dll载入内存;如果使用该dll的所有程序都已结束,则系统将该库从内存中移除。使用同一dll的各个进程在运行时共享dll的代码,但是对于dll 中的数据则各有一份拷贝(当然也有在dll中共享数据的方法)。动态链接库中可以定义两种函数:输出函数和内部函数。输出函数可以被其他模块调用,内部函数只能被动态链接库本身调用。动态链接库也可以输出数据,但这些数据通常只被它自己的函数所使用。

如我们所知,Windows程序都是一些可执行文件,它们可以创建并显示一个或多个窗体,使用消息循环来接收用户的输入。但是动态链接库并不能直接被执行,它们一般也不会接收消息。它们只是一些包含着函数的独立文件,这些函数可以被Windows程序或者其它DLL调用以完成某项任务。

“动态链接”是指Windows程序在运行时才把自己需要存在于某个库中的函数链接进来。“静态链接”是指Windows程序在编译阶段就把各种对象模块(.OBJ)、运行时库(.LIB)和资源文件(.RES)链接到一起以创建一个可执行文件(.EXE)。

DERNAL32.DLL,USER32.DLL,GDI32.DLL,各种驱动程序如KEYBOARD.DRV,SYSTEM.DRV和MOUSE.DRV,显卡和打印机驱动程序等都是动态链接库。这些库可以被所有的Windows程序共同使用。

有某些动态链接库(如字体文件)称为“resource-only”。它们只包括数据,而不包括代码。因此,动态链接库的目的之一就是为许多不同的程序提供函数和资源。在传统的操作系统里,用户程序在运行时只能调用操作系统自身的某些函数。而在Windows操作系统下,模块或程序调用另一个模块中的函数来执行是一种非常普遍的操作。因此,从某种角度看,对DLL进行编程,其实是在对Windows操作系统作扩展,也可以看作是在对用户程序作扩展。

动态链接库模块可以有其它的扩展名,但是标准的扩展名是.DLL。只有具有标准扩展句的动态链接库模块才可以被Windows自动加载。而如果是其它扩展名的动态链接库模块,程序必须使用LoadLibrary或者LoadLibraryE x函数来显示加载。

我们可以发现,在大型的应用软件中,会常常使用到动态链接库技术。举个例子,假如我们要写一个大型的应用软件,其中包括了多个程序。我们可以发现很多程序可能都会使用到一些同样的通用的函数。我们可以把这些通用的函数放到某个目标库文件中(.LIB),然后在链接是把它加到每个程序中进行静态链接。但是这是一种非常浪费的方法,因为每个程序模块中都会包括这些通用函数的独立拷贝。另外,如果我们要改变库文件中的某个函数,就必须把所有使用到这个函数的程序都重新编译一遍。但是,如果我们使用动态链接

库的技术,把所有这些通用函数都放到一个动态链接库文件当中,我们就可以解决以上提到的各种问题。首先,动态链接库在硬盘上只保留一个拷贝,程序只是在运行时才会调用其中使用到的函数,这样我们就可以节省大量的程序存储和运行空间。其次,如果要修改某个通用函数时,只要调用接口没有改变,只是改变它的实现方法,那么我们就不必对每个用到它的程序都进行重新编译,而只要把动态链接库模块重新编译一遍就可以了。

动态链接库模块也可以作为一个单独的产品来发布。这样程序开发人员就可以使用第三方的模块来开发自己的应用程序,提高了程序的复用程序,也节省了大量的时间和精力。

目标库和导入库都是在程序开发过程中才使用到的,而动态链接库是在程序运行时才使用的。在程序运行时,相应的动态链接库文件必须已经保存在硬盘上了。另外,如果要使用动态链接库文件,该文件必须要保存在同.EXE文件同一个目录下,或者保存在当前目录、Windows系统目录、Windows目录或环境变量中P ATH参数指定的目录下。程序也是按照这个顺序来搜寻它需要的动态链接库文件的。创建静态链接库(Lib)

创建静态链接库比较简单,创建win32控制台程序,选择静态库,这里我没有选择上预编译头。生成工程以后就像定义一般的函数般,定义放在头文件,然后实现放在cpp文件里头,直接build就出来一个静态的lib了,发布时附上头文件给使用者就可以。

创建动态链接库(DLL)

用SDK创建一个简单的dll文件

在VC++中选择新建一个Win32 Dy namic-Link Library。需要建立一个c/c++ head f ile和一个c/c++ source f ile并加入工程。头文件中内容为输出函数的声明,源文件中内容为DllMain函数和输出函数的定义。下面是一个最简单的例子。

头文件代码如下:

代码

#ifdef TEST_CREATE_DLL_EXPORTS

#define TEST_CREATE_DLL_API __declspec(dllexport)

#else

#define TEST_CREATE_DLL_API __declspec(dllimport)

#endif

// This class is exported from the test_create_dll.dll class TEST_CREATE_DLL_API Ctest_create_dll {

public:

Ctest_create_dll(void);

// TODO: add your methods here.

};

extern TEST_CREATE_DLL_API int ntest_create_dll;

TEST_CREATE_DLL_API int fntest_create_dll(void);

在创建工程的时候TEST_CREATE_DLL_EXPORTS就已经在预定义处定义过,生成导出dll。

头文件预处理中的__declspec是微软增加的“C扩展类存储属性”(C Exten ded Sto rage-Class Attribu tes),它指明一个给出的实例被存储为一种微软特定的类存储属性,可以为thread,naked,dlli mport或dllexport. [MSD N原文:The extended attribu te synta x fo r specifying storage-cla ss info rmation uses the __dec lspec keywo rd, which speci fies tha t an instance of a given type is to be stored with a Microsoft-specific sto rage-class attribute (thread, naked, dlli mport, or dllexpo rt).] 输出函数必须指明为CALLBACK。DllMain是dll的入口点函数。也可以不写它。DllMain必须返回TRUE,否则系统将终止程序并弹出一个“启动程序时出错”对话框。编译链接后,得到动态链接库文件dlldemo.dll和输入库文件dlldemo.lib。

_declspec(dllexport)

声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中。

省掉在DE F文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__dec lspec(dllexport)导出类。

__declspec(dlli mport)

声明一个导入函数,是说这个函数是从别的DLL导入。我要用。一般用于使用某个dll的exe中。

不使用__declspec(dlli mport) 也能正确编译代码,但使用__dec lspec(dlli mport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于DLL 中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨DLL 边界的函数调用中。但是,必须使用__dec lspec(dlli mpo rt) 才能导入DLL 中使用的变量。

相信写WIN32程序的人,做过DLL,都会很清楚__dec lspec(dllexport)的作用,它就是为了省掉在DE F文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexpo rt)导出类。但是,MSDN文档里面,对于__declspec(dlli mport)的说明让人感觉有点奇怪,先来看看MSD N里面是怎么说的:

不使用 __declspec(dlli mport) 也能正确编译代码,但使用 __declspec(dlli mport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它可以确定函数是否存在于DLL 中,这使得编译器可以生成跳过间接寻址级别的代码,而这些代码通常会出现在跨DLL 边界的函数调用中。但是,必须使用 __declsp ec(dlli mpo rt) 才能导入DLL 中使用的变量。

extern "C"

指示编译器用C语言方法给函数命名。

在制作DLL导出函数时由于C++存在函数重载,因此__dec lspec(dllexport) function(int,int) 在DLL会被decorate,例如被decorate成为function_int_int,而且不同的编译器decorate的方法不同,造成了在用GetProc Address取得function地址时的不便,使用extern "C"时,上述的decora te不会发生,因为C没有函数重载,但如此一来被extern"C"修饰的函数,就不具备重载能力,可以说extern 和extern "C"不是一回事。

C++编译器在生成DLL时,会对导出的函数进行名字改编,并且不同的编译器使用的改变规则不一样,因此改编后的名字会不一样。这样,如果利用不同的编译器分别生成DLL和访问该DLL的客户端代码程序的话,后者在访问该DLL的导出函数时会出现问题。为了实现通用性,需要加上限定符:extern “C”。

但是利用限定符extern “C”可以解决C++和C之间相互调用时函数命名的问题,但是这种方法有一个缺陷,就是不能用于导出一个类的成员函数,只能用于导出全局函数。LoadLi brary导入的函数名,对于非改编的函数,可以写函数名;对于改编的函数,就必须吧@和号码都写上,一样可以加载成功,可以试试看。

解决警告inconsistent dll linkage

inconsistent dll linkage警告是写dll时常遇到的一个问题,解决此警告的方法如下:

一般PREDLL_API工程依赖于是否定义了MYDLL_EXPORTS来决定宏展开为__declspec(dllexpo rt)还是__dec lspec(dlli mpo rt)。展开为__dec lspec(dllexport)是DLL编译时的需要,通知编译器该函数是需要导出供外部调用的。展开为__declspec(dlli mport)是给调用者用的,通知编译器,该函数是个外部导入函数。

对于工程设置里面的预定义宏,是最早被编译器看到的。所以当编译器编译DLL工程中的MYDLL.cpp时,因为看到前面有工程设置有定义MYDLL_EXPORTS,所以就把PREDLL_API展开为__declsp ec(dllexport)了。

这样做的目的是为了让DLL和调用者共用同一个h文件,在DLL项目中,定义MYDLL_EXPORTS,PREDLL_API就是导出;在调用该DLL的项目中,不定义MYDLL_EXPORTS,PREDLL_AP I就是导入。

使用静态链接库(Lib)

使用静态链接库需要库的开发者提供库的头文件以及li b文件,一般来说li b文件都比较大(相对导入库来说),静态链接库是将全部指令都包含入调用程序生成的EXE文件中,并不存在“导出某个函数提供给用户使用”的情况,就是要么全要,要么都不要。

使用动态链接库(DLL)

方法一:load-ti me dyna mic linking (隐式调用)

在要调用dll的应用程序链接时,将dll的输入库文件(i mpo rt li brary,.lib文件)包含进去。具体的做法是在源文件开头加一句

#include ,然后就可以在源文件中调用dlldemo.dll中的输出文件了。

#pragma comment(lib, "***.lib") //通知编译器DLL的.lib文件所在路径及文件名,也可以不采用该语句,在属性栏——输入——附加依赖项处添加对应的lib就可以编译链接应用程序了。

extern "C" __declspec(dlli mport) foo(); //声明导入函数

方法二:run-time dyna mic linking (显式调用)

不必在链接时包含输入库文件,而是在源程序中使用LoadLibrary或LoadLi braryE x动态的载入dll。

主要步骤为(以demo dll.dll为例):

1) typedef函数原型和定义函数指针。

typedef void (CALLBACK* DllFooType)(void) ;

DllFooType p fnDllFoo = NULL ;

2) 使用LoadLibrary载入dll,并保存dll实例句柄

HINSTANCE dllHandle = NULL ;

...

dllHan dle = LoadLibrary(TEXT("dlldemo.dll"));

3) 使用GetProc Address得到dll中函数的指针

pfnD llFoo = (DllFooType)GetP rocAddress(dllHandle,TEXT("DllFoo")) ;

注意从GetProc Address返回的指针必须转型为特定类型的函数指针。

4)检验函数指针,如果不为空则可调用该函数

if(p fnDllFoo!=NULL)

DllFoo() ;

5)使用FreeLibra ry卸载dll

FreeLibrary(dllHandle) ;

动态链接库(DLL)的优点

→节约内存;

→使应用程序“变瘦”;

→可单独修改动态链接库而不必与应用程序重新链接;

→可方便实现多语言联合编程(比如用VC++写个dll,然后在VB中调用);→可将资源打包;

→可在应用程序间共享内存

→......

【OA自动化】oa常见问题解决方法new

【OA自动化】oa常见问题解决方法new

常见问题解决方法 1、右边操作区没出现 ●受信任站点没添加 ●Setpolice.bat没运行 ●Office中的.NET可支持编程没运行 ●到注册表中: HKEY_CURRENT_USER\Software\Microsoft\Schema Library\Cachet删除掉。 ●在WORD中把XML扩展包删除,然后手工添加进去: http://oa.petrochina/sdxml/managedmanifest_signed.xml ●如果扩展包手工加载不进去,可以到C:\Documents and Settings\kity\Local Settings\Application Data\Microsoft下查看是否有Schemas ●工具—>管理加载项,禁用某些可以的加载项 2、点击“打开正文”按钮时,显示灰色 ●Office的版本不对 ●Office中的.NET可支持编程没运行 ●到注册表中: HKEY_CURRENT_USER\Software\Microsoft\Schema Library\Cachet删除掉 ●受信任站点没添加

●Setpolice.bat没运行 3、打不开正文,而且“打开正文”按钮旁边出现一个小的凹型图标。 ●看是否是3721的问题。 ●杀毒软件 ●Setpolice.bat没运行。 4、打开普通的正文,点击“打开正文”时,一闪就没什么反应了。 ●Office的版本不对 ●Setpolice.bat没运行 5、打开加密后的正文,点击“打开正文”时,一闪没什么反应了。 ●杀毒软件(金山毒霸卸载掉、瑞星关掉内存监控、关闭macafee 中的缓冲区溢出) ●RMS客户端坏了; ●用户的身份不对 ●检查用户的系统时间是否与服务器的时间是一致的。 ●软件冲突。 6、打开正文时,右边的操作区出现“客户端版本更新” ●删除临时文件 ●在代理服务器中添加*.petrochina ●到注册表中: HKEY_CURRENT_USER\Software\Microsoft\Schema Library\Cachet删除掉

直放站最常见故障及处理方法

直放站最常见故障及处理方法 1、直放站轮询失败 拨打监控电话是否可以打通,通的话重新轮询确定是否已恢复正常,不正常则去现场处理。 首先检查设备供电是否正常,检查电源模块工作是否正常,检查监控板工作是否正常,取出监控卡清除卡内短信,确认卡是否停机或损坏,还是不行检查软件设置参数是否正确,如短信中心号码设置是否正确等,没有问题检查MODEM接收信号是否正常,最后都不行就更换MODEM和监控板。 2、下行驻波告警 首先用驻波仪检查直放站输出口主干馈线是否驻波过高,检查线路接头是否进水或被破坏,查出故障点整改后可以恢复,天馈驻波正常则调整直放站设备驻波告警参考值设置是否正确,或者降低直放站的输出功率可以得到解决。 3、下行欠功率告警 首先检查直放站参数设置是否正确,调整增益是否可以恢复,如果数据正常,检查下行低噪放和功放,或是施主信号变小,还有可能施主基站频点更改直放站没有及时更新。 4、直放站覆盖区无信号 `查施主天线是否有故障,检查分布系统是否被破坏。 5、直放站信号变弱 电脑检查输出信号是否变小,参数设置是否改变,调整增益是否可以改善,检查分布系统是否驻波太高。 6、基站有上行干扰 上行底噪大,主要是直放站离基站较近,增益太大。通过减小上行增益可以使底噪下降。还有检查直放站的杂散是否超标。 7、光收发模块故障 首先检查光模块光输出是否正常,再检查光输入是否正常,如果出现LD ALARM则光模块发有故障,更换,如果出现PD ALARM有可能是另一端的光模块出现故障,也可能是光纤线路出现故障,需检查远端的输出是否正常判断故障出现在哪里。 8、覆盖区手机上线困难,呼不出 出现手机上线困难主要原因是上下行增益设置不平衡,手机发射功率大,接入网络困难,接入网络时间长,要求上下行增益差不超过3-5dB。如果设置正确那就可能是上行低噪放和攻放故障,还有个可能是施主基站话务量太大导致上线,电话打不出。 9、效果监控轮询失败 效果监控软件故障,重启设备就可以恢复,效果监控供电故障,或者效果监控卡出现停机等现象。也有可能效果监控硬件故障,比如卡槽坏等明显故障。 10、效果监控接收电平强度告警 首先检查直放站工作是否正常,再检查耦合器和连接线是否有故障,还有检查平台告警范围设置是否合适。 11、切换失败掉话 进出电梯发生切换失败掉话,原因是小区列表没有做好导致掉话,检查电梯厅信号和电梯内信号两个小区的领区列表。直放站选信源要选用原大楼内的主导频点作为信源覆盖,尽量减少切换。 12、微蜂窝信号泄露 室内分布低层天线安装太靠边或者是大楼外墙损耗较小导致室内微蜂窝信号泄露,处理方法;更改室内分布系统器件或主机输出降低天线输出电平,更改天线位置,更换成定向天线,修改微蜂窝和室外宏蜂窝信号切换电平差等。 13、大楼高层信号显示满格,但经常掉话,通话质量差

多媒体教学设备常见问题

多媒体教学设备常见问题 多媒体教学设备一般由计算机、投影机、电控幕布、影碟机、扩音机、实物展台等多个媒体设备组合而成。它们的正常工作是多媒体教学正常进行的重要保障,对于它们的管理与维护,不能等出了问题才处理,需要做到有无故障都定期检查、定期维护。下面主要从使用频率最高且最容易出问题的设备:即计算机系统和投影系统两方面来讨论。 计算机系统的常见问题与解决办法 多媒体计算机既是高精密的设备,也是多媒体教学系统的核心。它的"健康"状况直接决定了多媒体教学是否能够顺利进行。从电源系统看,在给计算机供电时应尽量采用UPS(不间断供电电源)供电,以保证计算机在运行过程中不会因为突然断电而使数据丢失或导致硬件损坏,同时也保证不会因为突然通电而烧毁计算机硬件。管理人员还应定期检查计算机电源插座,各种I/O 接口连接线,避免因为接触不良而影响多媒体教学效果或引起火灾。 投影系统的常见问题与解决办法 投影机是多媒体教学中必不可少的设备,使用频率很高,同时也是故障多发的设备。它的"

健康"状况同样决定了多媒体教学是否能够顺利进行。 从投影机的供电系统看,应尽量采用UPS(不间断供电电源)供电,投影机工作时灯泡内 温度可达上千摄氏度,灯丝处于半熔状态,其内部的电路板等部件均在高温下工作。若突然断电,机器的热量得不到及时的散发,这会大大缩短投影机使用寿命,甚至导致灯泡炸裂、灯丝断裂、电路板烧毁等后果。同时应注意,投影机使用后不能马上断开电源,应让投影机散热完成并自动停机后再断电。 另外,从投影机硬件系统看,频繁开关投影机、连续使用时间过长、震动、潮湿、灰尘等,都有可能缩短投影机使用寿命。投影机一般都设计了专门的散热风扇,以每分钟几十升的空气流量对内部进行送风,高速气流经滤尘网在机器内部循环后将热量带走,起到散热的效果。而气流经过滤尘网时可能夹带微小尘粒,同时内部液晶板在成像时极易产生静电而吸附尘粒。这就要求管理员需要定期联系专业人员对投影机滤尘网、电路板进行除尘、检修。 此外,管理员还应定期检查投影机周边环境,查看是否有遮挡物挡住投影机通风口,保证良好的散热环境。另外,若遇到节假日、寒暑假等长期不使用投影机的情况,应用防尘罩把投影机罩好,并放置干燥剂,预防投影机内部部件因空气潮湿而发潮、长霉。对于投影机背面的一系列接口,还应定期检查接口是否松动,连接线是否因老化而破裂,防止接触不良而影响投影效果或发生打火现象。

OA问题汇总及解决方法

OA问题汇总及解决方法 近期因部分用户自动安装了windows的安全更新,造成教育局OA终端与IE浏览器出现不兼容现象,现将问题及解决办法汇总如下,敬请参考。 1、IE浏览器版本过高,造成不兼容怎么解决? 2、IE浏览器兼容性视图如何设置? 3、如何把OA网站设置为信任站点? 4、OA精灵登陆时提示脚本错误怎么办? 5、OA精灵点击电子邮件等无反应怎么办? 6、网页方式访问OA时,输入用户名和密码,点击登陆后卡在加载页面无反应怎么办? 1、IE浏览器版本过高,造成不兼容怎么解决? 关于IE浏览器的版本,建议win7系统使用IE10,并关闭自动安装新版本 功能,XP系统使用IE8,如果发现IE版本过高,请卸载之,具体操作步骤请参考:如何卸载IE11 2、IE浏览器兼容性视图如何设置? (1)点击IE“工具”菜单,选择“兼容性视图设置”,

有网站”请的复选框选中,并关闭。 3、如何把OA网站设置为信任站点? (1)依次点击IE菜单“工具”—“Internet选项”,在弹出的选项卡中 (2)选择“受信任的站点”,再点击“站点”;

(3)去掉“对该区域中的所有站点要求服务器验证(https:)”勾选,再把OA网站地址加入信任网站列表。 4、OA精灵登陆时提示脚本错误怎么办? 首先请检查IE浏览器版本,如果版本高于IE10,请参考问题1解决。 5、OA精灵点击电子邮件无反应怎么办? 这有可能是安装多个浏览器后造成的,请把IE浏览器重新设置成默认浏览器。操作如下: 第一步:打开IE浏览器,点击“工具”菜单,选择“Internet选项”; 第二步:在弹出的对话框中选择“程序”选项卡;

常见软件故障及处理方法

常见软件故障及处理方法(转载) 软件故障的原因 软件发生故障的原因有几个,丢失文件、文件版本不匹配、内存冲突、内存耗尽,具体的情况不同,也许只因为运行了一个特定的软件,也许很严重,类似于一个的系统级故障。 为了避免这种错误的出现,我们可以仔细研究一下每种情况发生的原因,看看怎样检测和避免。 丢失文件: 你每次启动计算机和运行程序的时候,都会牵扯到上百个文件,绝大多数文件是一些虚拟驱动程序vir tual device drivers (VxD),和应用程序非常依赖的动态链接库dynamic link library (DLL)。VXD允许多个应用程序同时访问同一个硬件并保证不会引起冲突,DLL则是一些独立于程序、单独以文件形式保存的可执行子程序,它们只有在需要的时候才会调入内存,可以更有效地使用内存。当这两类文件被删除或者损坏了,依赖于它们的设备和文件就不能正常工作。 要检测一个丢失的启动文件,可以在启动PC的时候观察屏幕,丢失的文件会显示一个“不能找到某个设备文件”的信息和该文件的文件名、位置,你会被要求按键继续启动进程。 造成类似这种启动错误信息的绝大多数原因是没有正确使用卸载软件。如果你有一个在WINDOWS启动后自动运行的程序如Norton Utilities、 Nuts and Bolts等,你希望卸载它们,应该使用程序自带的“卸载”选项,一般在“开始”菜单的“程序”文件夹中该文件的选项里会有,或者使用“控制面板”的“添加/卸载”选项。如果你直接删除了这个文件夹,在下次启动后就可能会出现上面的错误提示。其原因是W INDOWS找不到相应的文件来匹配启动命令,而这个命令实际上是在软件第一次安装时就已经置入到注册表中了。你可能需要重新安装这个软件,也许丢失的文件没有备份,但是至少你知道了是什么文件受到影响和它们来自哪里。 对文件夹和文件重新命名也会出现问题,在软件安装前就应该决定好这个新文件所在文件夹的名字。 如果你删除或者重命名了一个在“开始”菜单中运行的文件夹或者文件,你会得到另外一个错误信息,在屏幕上会出现一个对话框,提示“无效的启动程序”并显示文件名,但是没有文件的位置。如果桌面或者“开始”菜单中的快捷键指向了一个被删除的文件和文件夹,你会得到一个类似的“丢失快捷键”的提示。 丢失的文件可能被保存在一个单独的文件中,或是在被几个出品厂家相同的应用程序共享的文件夹中,例如文件夹\SYMANTEC就被Norton Utilities、Norton Antivirus和其他一些 Symantec 出品的软件共享,而对于\WINDOWS\SYSTEM来说,其中的文件被所有的程序共享。你最好搜索原来的光盘和软盘,重新安装被损坏的程序。 文件版本不匹配: 绝大多数的WIN 9X用户都会不时地向系统中安装各种不同的软件,包括WINDOWS的各种补丁例如Y2K,或者将WIN 95 升级到WIN 98,这其中的每一步操作都需要向系统拷贝新文件或者更换现存的文件。每当这个时候,就可能出现新软件不能与现存软件兼容的问题。 因为在安装新软件和WINDOWS升级的时候,拷贝到系统中的大多是DLL文件,而DLL不能与现存软件“合作”是产生大多数非法操作的主要原因,即使会快速关闭被影响的程序,你也没有额外的时间来保存尚未完成的工作。 WINDOWS的基本设计使得上述DLL错误频频发生。和其他版本不同,WIN 95允许多个文件共享\WINDO WS\SYSTEM文件夹的所有文件,例如可以有多个文件使用同一个Whatnot.dll,而不幸的是,同一个DLL文件的不同版本可能分别支持不同的软件,很多软件都坚持安装适合它自己的Whatnot.dll版本来代替以前的,但是新版本一定可以和其他软件“合作愉快”吗?如果你运行了一个需要原来版本的DLL的程序,就会出现“非法操作”的提示。 在安装新软件之前,先备份\WINDOWS\SYSTEM 文件夹的内容,可以将DLL错误出现的几率降低,既然

PC机及打印机常见故障问题解决方法汇总

PC机、打印机、复印机常见故障问题解决方法一.PC机常见故障问题解决方法 电脑常见死机故障分析 一、硬件故障引起 1、散热不良 2、移动不当 3、灰尘 4、软、硬件不兼容 5、内存条故障 6、硬件资源冲突 7、内存容量不够 二、软件故障引起 1、病毒感染 2、系统文件的误删除 3、硬盘剩余空间太少或碎片太多 4、非法卸载软件 5、启动的程序太多 6、非法操作 7、非正常关闭计算机电脑不启动常见故障分析 一、听声音,判故障: 电脑出现启动故障时都会发出不同的鸣叫声提示故障的部位,下面列举 出 AMI BIOS 和 Award BIOS 鸣叫声的含义: AMI BIOS 1 短内存刷新失败 2 短内存 ECC 校验错误 3 短系统基本内存(第一个 64K)自检失败 4 短系统时钟出错 5 短 CPU 出错 6 短键盘控制器错误 7 短系统实模式错误,不能进入保护模式 8 短显示内存错误 9 短主板 Flash ROM 或 EPROM 检验错误 1长3短内存错误(如内存芯片损坏)

Award BIOS: 1 短系统正常启动 2 短常规错误。应进入 CMOS Setup,重新设置不正确的选项 1长1短内存或主板出错 1长2短显示器或显卡错误 1长3短键盘控制器出错 1长9短主板 FlashRAM 或 EPROM 错误(如 BIOS 被 CIH 破坏) 不间断长鸣内存未插好或芯片损坏 不停响声显示器未与显卡连接 重复短鸣电源故障 二、电脑黑屏 1,显示器断电或显示器数据线接触不良; 2,主板没有供电; 3,显卡接触不良或损坏; 4,CPU 接触不良; 5,内存条接触不良; 6,机器感染 CIH 病毒,BIOS 被破坏性刷新。 电脑自动重新启动故障 一、软件 1.病毒破坏2.系统文件损坏 二、硬件 1.市电电压不稳 2.插排或电源插座的质量差,接触不良 ①不要图省钱而购买价廉不物美的电源排插,购买一些名牌的电源插排,因为其内部都是机器自动安装压接的,没有采用手工焊接。 ②对于是否属于墙壁插座内部虚接的问题,我们可以把主机换一个墙壁插座试一试,看是否存在同样的自动重启问题。

通信直放站故障处理

通信直放站故障处理 随着近年来通信无线市场的需求和传输技术的革新,促使通信无线设备越来越集成化、人性化、功能化。无线通信领域各种技术的互补性日趋鲜明。这主要表现在不同的接入技术具有不同的覆盖范围、不同的适用区域、不同的技术特点和不同的接入速率。铁路通信应用较广的模式有直放站传输模式,研究其使用和维护,总结日常出现的故障克服更有利于日后维护和设备的稳定使用。 标签:直放站;开通;故障;解决 前言 无线通信技术近十年的变更非常瞩目,我国无线频率资源也较为丰富,推進不同技术相关频谱的规划和应用工作是现在政府和各个行业应该推进的工作之一。比如3G/4G可解决广域网的传输需求;WLAN可解决中距离的较高速传输;UWB超宽带可解决近距离的超高速无线传输。因此在组网上要考虑一体化,多技术并用的方式实现不同用户群体的需求。未来的无线通信网络将是一个综合的一体化的解决方案,各种无线技术都将在这个一体化的网络中发挥自己的作用。有线传输与无线传输的结合,长距离与短距离或超短距离的高速传输的结合,满足不同行业、不同群体的需求为出发点的革新。 在铁路无线通信网络中,无线直放站的组网方式以其结构简单、安装方便、设备稳定性强、覆盖面积满足铁路通信的要求等特点,被铁路通信专业广为使用,其安装较基站便利,建设周期较短,并且不受各方面的的限制等优点,在各个管辖线路中广泛使用。针对直放站使用中的一些常见障碍和解决方式做个归纳和分析。 1 直放站简介 铁路无线直放站主要是由近端机、远端机、连接光纤、耦合器等设备构成。 车站信号通过耦合器耦合,进入近端机,经过光电转换,传输至光缆,远端机接收到光信号后,转换为电信号,并进行放大,通过天线向外覆盖,传输到隧道内的移动机车,使处于隧道内的机车台和手持台有较好的接收效果,同时将机车发出的反向信号通过天线接收并放大后,由光缆发回近端机,再由近端机转换后传回车站电台。实现车站与隧道内的机车之间的异频半双工通讯。 2 安装调试 设备在投入运营前做好安装和调试工作,确保设备的稳定运行,一般安装近端机、远端机较为简单,大多都是成品根据图纸组网,较为简单。调试工作做好以下几个方面。

LabCVI常见问题及解决方法

LabCVI常见问题及解决方法 LabCVI常见问题及解决方法(一) 1. 使用CVI9.0调用由VC++6.0编写的DLL,该DLL在VC中调用是可以的,输出方式也是C语言的。但是在CVI中调用该DLL时,总是提示missing prototype,如何解决? 答:设置BUILD OPTION 在options->Build options | c language options中取消Require function prototypes的检测 2. CVI中如何向设计好的word表格中添加文字和数据? 答:先在表格中需要添加文字和数据的地方做一个“书签”,在CVI中打开该文档后,使用Word_GetProperty (currSelHandle, NULL, Word_SelectionBookmarks, CAVT_OBJHANDLE, &rangeHandle);获得“书签”信息,然后再向该“书签”处添加文字。 3. CVI中如何将波形图控件的图片放到剪贴板中? 答:首先使用GetCtrlDisplayBitmap (panel, FORCEPANEL_GRAPH, 1, &bitmap);获得波形图控件的图片,然后使用ClipboardPutBitmap (bitmap);将图片放入到剪贴板中。 4. CVI中是否支持指向函数的指针,如何实现? 答:可以实现,如下例: int(*pmax)(int a, int b); int x,y,z; pmax=max; printf("input two numbers:\n"); scanf("%d%d",&x,&y); z=(*pmax)(x,y);

投影仪使用方法及常见问题与解决方法

投影仪连接笔记本常见问题与解决方法 一、了解投影仪的接口 投影仪的接口大致可以分为两类:模拟信号接口和数字信号接口,有些机型还提供有音频输入、输出端子。其中模拟信号接口主要包括:15针VGA接口、Video接口、S-Video接口等。数字信号接口主要包括:USB接口,IEEE1394接口,DVI接口和HDMI接口等。 投影仪连接笔记本用得最多接口就是VGA和DVI接口,不过DVI 接口并不是所有投影机都配备,一般在一些中高档投影机才出现DVI 数字接口,而近一两来有些新品还配备了HDMI接口,HDMI接口是在DVI接口的基础上,增加了数字音频输入,从而成为专用的多媒体信息接口,而且支持1920*1080 DPI高清晰的数字信号,因此

HDMI接口多出现在高端家用投影机上,而一些高端多媒体商务投影机也有配备HDMI接口的。 注意:投影仪接口有in和out之分,用户切记不要把笔记本视频连线连接到VGA out去,如果接错信号口,这样不论你怎么设置,投影机都不能正常工作的。 二、Fn+F4组合键 不少用户把投影仪与笔记本连接好后,开启投影机,但投影仪扔不能显示笔记本画面,这可能是投影仪与笔记本连接的视频端口未被激活导致的,此时只要按住笔记本电脑的Fn键,然后同时按下标识为LCD/CRT 或显示器图标的对应功能键,如图Fn+F4键进行切换即可。 三、注意笔记本与投影仪分辨率匹配

现在的笔记本多为宽屏,一些与宽屏笔记本兼容性较差的投影仪甚至不能适应宽屏分辨率,导致投影画面出现虚化现象,分辨率相差越大,画面虚化程度越明显。 当使Fn+F4用切换之后还是无法显示的时候,可能就是计算机输入分辨率的问题了,这时只要把计算机的显示分辨率调整到投影仪允许的范围内即可,同时也需要注意投影机画面宽高比的设置。有时投影画面虽然能显示,但是只是显示了电脑上的一部分图像,这时也可能是电脑的输出分辨率过高造成的,用户可适当降低电脑分辨率再进行投影。 四、活用投影仪信号源设换键

关于电子公文的一些常见问题和解决方法

1、登录系统后出现以下现象怎么解决? 答:1、检查客户端是否安装。 2、安装根证书。 2、中石油总部技术支持帮助热线电话多少? 答: 4008800114 3、登陆OA时,输入用户名和密码后,页面显示“无法显示该页 面”怎么解决? 答:检查用户机器上有没有安装PPLive之类的网络电视,如果有,将这个程序退出或者卸载掉,然后再登陆系统就可以了。 4、电子公文打开正文后,点击“进入编辑状态”没有反映,怎么 解决? 答:解决办法: 1 )打开一个新的word文档,点击“工具”菜单,选择“模版和加载项”,选择xml架构,点击“架构库”,选中该架构,点“删除架构”。

2)右击IE属性,进入internet选项,点击“常规”—“设置”—“查看对象”,删除msdol和mssignature控件。

3)删除C:\Documents and Settings\mary\Application Data\Microsoft\Templates下的normal模版。 4)打开空的word文档,进入“帮助”菜单,点击“检测并修复office”。 5)运行OA 帮助中产品下载的OA客户端安装软件中的Setpolicy.bat。 6)如果上述方法操作过后,进入编辑状态按钮没有了,打开一个word文档,点击帮助-关于Microsoft Office Word,选择“禁用项目”,在“禁用项目”里面选择被禁用了的项目,然后点击启用。

5、电子公文打开正文后,点击“进入编辑状态”右边出现了文档 操作区,但操作区里没内容,怎么解决? 答:检查顺序:检查XML的位置是否正确(XML结构中添加alldoc/command 元素)。 解决办法: 1) 如果在盖章时出现此问题,而且“停止保护”也不可用了,那么必须把此文下载到服务器修改(联系OA系统管理员处理)。 2) 在 WORD中把XML扩展包删除,然后手工添加进去: 扩展包地址:http://oa.petrochina/sdxml/managedmanifest_signed.xml。

天正8常见问题

TArch8常见问题(2009.8) Q1.TArch8能否与其他软件和平共处? TArch8能够与大多数具有良好协作特性的第三方软件,共同安装在一台机器上。有些恶劣的第三方软件安装到您的机器后,由于它修改了AutoCAD系统本身,可能导致TArch8不能正常运行,你可向该软件的供应商提出抗议。您也可以通知我们,哪些AutoCAD下的第三方应用软件不能与天正的产品共处一台机器的AutoCAD 200x平台。 Q2.如何打印TArch8的图形和向3.0用户传图? 许多设计单位在专门的机器上输出图纸,“天正插件”最适合于这样的机器,安装了“天正插件”后,该机器就可以阅读和打印用TArch8绘制的图形。 有四种方法可以让其他专业的设计人员使用TArch8绘制的建筑图形: 1.在其他专业设计人员的机器上安装“天正插件”; 2.执行【图形导出】命令,导出为TArch3格式的其他专业图形。 3.使用天正公司8.0版本的其他专业产品。 4.在高级选项中,将代理实体方式启用,之后新保存的TArch8图形可以在其它机器 上显示和打印,但文件大小会大大增加。 Q3.为何图形导出后出现的填充和文字丢失? 一些设计单位在执行“图形导出”(以前叫“另存旧版”)命令后,把图形文件复制到其他机器,由天正3或者acad打开,出现丢失字体或者填充图案的问题。 原因是该机器的Acad系统没有天正8或者acad200X提供的字体或者图案文件,解决方法: 1.把天正sys下的GB*.shx字体复制到目标机器的天正3的sys目录下。 2.把天正sys下的acad*.pat图案文件复制到上面的同一个目录下。 Q4.为何TArch8 2004在Windows 98下不能图形导出,不能新建和打开图库? AutoCAD 2004不支持Windows 98,用户可以参考AutoCAD的帮助文档《安装和许可指南》有关系统需求的描述。下面是AutoCAD 2004对操作系统的要求: Windows XP Professional、Windows XP Home、Windows Tablet PC、

OA常见问题解决方法(new)

常见问题解决方法 1、右边操作区没出现 ●受信任站点没添加 ●Setpolice.bat没运行 ●Office中的.NET可支持编程没运行 ●到注册表中:HKEY_CURRENT_USER\Software\Microsoft\Schema Library\Cachet删除掉。 ●在WORD中把XML扩展包删除,然后手工添加进去: http://oa.petrochina/sdxml/managedmanifest_signed.xml ●如果扩展包手工加载不进去,可以到C:\Documents and Settings\kity\Local Settings\Application Data\Microsoft下查看是否有Schemas ●工具—>管理加载项,禁用某些可以的加载项 2、点击“打开正文”按钮时,显示灰色 ●Office的版本不对 ●Office中的.NET可支持编程没运行 ●到注册表中:HKEY_CURRENT_USER\Software\Microsoft\Schema Library\Cachet删除掉 ●受信任站点没添加 ●Setpolice.bat没运行 3、打不开正文,而且“打开正文”按钮旁边出现一个小的凹型图

标。 ●看是否是3721的问题。 ●杀毒软件 ●Setpolice.bat没运行。 ●重新安装.NETFramework1.1 ●安装根证书 4、打开普通的正文,点击“打开正文”时,一闪就没什么反应了。 ●Office的版本不对 ●Setpolice.bat没运行 5、打开加密后的正文,点击“打开正文”时,一闪没什么反应了。 ●杀毒软件(金山毒霸卸载掉、瑞星关掉内存监控、关闭macafee 中的缓冲区溢出) ●RMS客户端坏了; ●用户的身份不对 ●检查用户的系统时间是否与服务器的时间是一致的。 ●软件冲突。 ●提示输入了两次密码,一闪而过的情况,可以到C:\Documents and Settings\kity\Local Settings\Application Data\Microsoft\DRM目录下删除该目录下的所有文件,然后重新打开正文 6、打开正文时,右边的操作区出现“客户端版本更新” ●删除临时文件 ●在代理服务器中添加*.petrochina

常见问题处理集

学校办公系统常见问题处理办法集合 一、目录: 1、IIS6上传附件200K限制解除,IIS7.0的上传文件大小修改方法如下 2、下载不了EXE文件处理办法 3、本地安装,无网卡试用 4、SQL Server 2008 错误 233 的解决办法(不能连接数据库) 5、 YFSchoolOApro.YFSchoolDll 错误 '80040e4d' 6、请不要安装360防火墙(会非常大的影响上传文件速度)! 7、免费天气预报代码请到这里找 8、Server 对象错误 'ASP 0177 : 800401f3' 9、SQL Server 1069 错误(由于登录失败而无法启动服务)解决方法 10、成绩录入和OA精灵不能用 11、印校徽时出现 Persits.Jpeg.1 错误 '800a0001' 错误 12、安装SQL 提示错误:以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机 13、务必保证你的放数据的分区是NTFS,因为FAT32文件最大只能 4G。 14、sql2005数据库 SA登陆可以,但连接不了的问题 15、OA精灵或成绩录入错误 16、SQL连接失败 17、问题描述:请求的资源在使用中 18:SQL2005不能IP连接 19、如何解决“从字符串转换为datetime时发生语法错误” 20、安装MS SQL2000 的用户,如果改了windows 2003 的系统管理员账户密码,客户端不能登陆 21、IIS7 配置 22、windows 2008 设置。 如何降低windows server 2008中IE的安全级 windows server2008自动登录 23、 SQL 2008附加 2000的只读错误问题 24、IIS7多域名绑定同一物理目录,设置不同默认文档的解决方案

多媒体设备常见故障及解决方法2018版

逸夫楼多媒体设备常见故障及解决方法 注意:有老师或同学来请求帮助,要先问一下哪里出了故障!!!而且无论是否解决都要记录在故障记录本上,解决了注明解决方法,没有解决也要注明未解决,并在群里发布。 1-电脑不亮: 可能有以下几种情况: (1)主机未开机,按一键上课后,中控未开启主机,此时则选择手动开机(直接按主机开关开机,力行楼可能是电源接触不良,重新插拔插座电源)。 (2)显示器开机键与玻璃屏幕贴得太紧,将玻璃与显示器之间塞些纸片,并打开显示器开关。 (3)可能是电源线松动,打开后框,检查显示器连接线是否连接或插好。 (4)如果以上方法都不行,则可能与电脑主机内存条有关,打开主机箱,取下内存条用橡皮擦拭后重新插紧。 2-多媒体设备没有声音: 可能有以下四种情况, (1)观察电脑或控制面板是否开启音量,调节电脑和控制面板音量。 (2)功放未打开,用机柜钥匙打开机柜,检查功放指示灯,看功放是否打开。若未亮,按下开关。 (3)若功放已打开,转动功放音量旋钮调试,看是否有声音放出。 (4)功放后插孔接线未连接或松动,打开后盖查看插孔接线,将未接的线插好,将已插的线拔下重插插牢。

3-按“上课”键没有反应: (1)有时“上课”键按一次没反应,此时应多按几次,指示灯常亮表示完全开启。 (2)按键操作过于频繁,关掉总开关,等待20秒后再通电,听到“嘀”的一声,等待几秒钟后按“上课”键即可。 4-老师U盘文件无法读出: (1)USB接口损坏或U盘损坏,更换接口后重插U盘,若均无显示,则老师U盘损坏。 (2)老师U盘可能中病毒,导致部分文件被隐藏或删除,用火绒安全对U盘杀毒,并打开我的电脑,依次点工具→文件夹选项→查看→显示隐藏的文件,勾上。 (3)将老师U盘文件拷到桌面上,再选中文件右键选择其他打开方式。 5-投影机无反应,不显示画面: 可能有三种情况: (1)等待一两分钟后仍无反应,多按几下中控面板上的投影“开“键。 (2)如果仍无反应,则直接按投影机“power”键开机。 (3)断开总开关电源,等待20秒后再通电开机。 6-投影机出现“寿命已到,请更换灯泡”现象: 两种解决方法: (1)同时按住投影机上电源键+menu+enter三个步骤15秒钟,即可清零。 (2)使用遥控器或直接按投影机按键,进入设置,选择复位选项,进行清零,均有效。

直放站各种告警处理方法

直放站各种告警处理方法 一、直放站的原理介绍 1、直放站是一种射频双向无线放大器,它放大基站的下行信号,同时也放 大来自移动终端的上行信号。它采用透明传输,不附加调制解调。直放站分为室外直放站和室内直放站。 直放站设备原理框图 直放站主要由施主天线、两组双工器、两组低噪放(LNA)模块、两组功放(PA)模块、重发天线、电源模块、监控模块、无线MODEM模块及外壳等组成。不同类型的直放站是在此基础上,增加了相应的模块(如选频模块等)而组成的。施主天线通过无线方式接收来自基站的信号。光纤直放站与之区别的是在基站侧有个近端机,通过光纤的方式把信号传至远端机,以此来传输信号。 2、直放站的种类 ◇宽带直放站 ◇选频直放站 ◇移频直放站 ◇光纤直放站 ◇室内直放站 二、直放站及室内分布系统告警种类及处理方法 (一)、紧急告警 1、电源掉电告警

产生原因:直放站的市电停电 对覆盖区的影响:覆盖区无信号 处理方法:安装备用蓄电池 2、电源故障告警 产生原因:直放站电源模块故障,输出电压异常 对覆盖区的影响:设备工作不稳定导致覆盖信号不稳定 处理方法:更换电源模块 说明:如出现电源故障告警,很可能伴随出现电源掉电告警 3、下行输出过功率告警 产生原因:直放站的下行输出功率电平高于设定的下行输出 对覆盖区的影响:覆盖信号弱,无法满功率输出 处理方法:检查门限值是否正确,必要时调低输出电平值 说明:如出现下行输出过功率告警,有可能会出现自激告警 4、低噪放故障告警 产生原因:上行低噪放工作异常 对覆盖区的影响:到功放模块的信号没有或很低,影响覆盖;覆盖信号弱 或无信号 处理方法:更换低噪放模块 5、功放告警 产生原因:上行功放工作异常 对覆盖区的影响:不能放大信号,覆盖信号弱或无信号 处理方法:更换功放模块单 注:电源故障告警、低噪放故障告警、功放告警、均属于直放站机器固件损坏,无法自动恢复。 (二)、重要告警 1、收信号电平告警(网络信号检测仪) 产生原因:接收信号电平低于设置门限,有可能是光线折损 对覆盖区的影响:覆盖信号弱,接收信号变差 处理方法:检查光线情况,必要时更换尾纤 2、下行输入欠功率告警 产生原因:直放站的下行输入功率电平低于设定的下行输入 对覆盖区的影响:覆盖信号弱,无法满功率输出 处理方法:检查信源情况 3、下行驻波比告警 产生原因:直放站的覆盖端总驻波比高于设定的下行驻波比 对覆盖区的影响:输出功率变差,通话质量差

动态链接库技术(一)

动态链接库技术(一) 摘要:动态链接库技术实现和设计程序常用的技术,在windows和linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将visual c++编制的动态库移植到linux上的方法和经验。 1、引言 动态库(dynamic link library abbr,dll)技术是程序设计中经常采用的技术。其目的减少程序的大小,节省空间,提高效率,具有很高的灵活性。采用动态库技术对于升级软件版本更加容易。与静态库(static link library)不同,动态库里面的函数不是执行程序本身的一部分,而是根据执行需要按需载入,其执行代码可以同时在多个程序中共享。 在windows和linux操作系统中,都可采用这种方式进行软件设计,但他们的调用方式以及程序编制方式不尽相同。本文首先分析了在这两种操作系统中通常采用的动态库调用方法以及程序编制方式,然后分析比较了这两种方式的不同之处,最后根据实际移植程序经验,介绍了将vc++编制的windows动态库移植到linux下的方法。 2、windows动态库技术 动态链接库是实现windows应用程序共享资源、节省内存空间、提高使用效率的一个重要技术手段。常见的动态库包含外部函数和资源,也有一些动态库只包含资源,如windows字体资源文件,称之为资源动态链接库。通常动态库以.dll,.drv、.fon等作为后缀。相应的windows 静态库通常以.lib结尾,windows自己就将一些主要的系统功能以动态库模块的形式实现。 windows动态库在运行时被系统加载到进程的虚拟空间中,使用从调用进程的虚拟地址空间分配的内存,成为调用进程的一部分。dll也只能被该进程的线程所访问。dll的句柄可以被调用进程使用;调用进程的句柄可以被dll使用。dll模块中包含各种导出函数,用于向外界提供服务。dll可以有自己的数据段,但没有自己的堆栈,使用与调用它的应用程序相同的堆栈模式;一个dll在内存中只有一个实例;dll实现了代码封装性;dll的编制与具体的编程语言及编译器无关,可以通过dll来实现混合语言编程。dll函数中的代码所创建的任何对象(包括变量)都归调用它的线程或进程所有。 根据调用方式的不同,对动态库的调用可分为静态调用方式和动态调用方式。 (1)静态调用,也称为隐式调用,由编译系统完成对dll的加载和应用程序结束时dll卸载的编码(windows系统负责对dll调用次数的计数),调用方式简单,能够满足通常的要求。通常采用的调用方式是把产生动态连接库时产生的.lib文件加入到应用程序的工程中,想使用dll中的函数时,只须在源文件中声明一下。lib文件包含了每一个dll导出函数的符号名和可选择的标识号以及dll文件名,不含有实际的代码。lib文件包含的信息进入到生成的应用程序中,被调用的dll文件会在应用程序加载时同时加载在到内存中。 静态调用时,使用DLL 的程序需要获取以下信息:

多媒体使用中出现的问题及解决办法

多媒体使用中出现的问题及解决办法 一、投影不上屏 1、电脑切换到双屏模式按钮没有操作 2、视频线连接有问题 3、中控没有切换到对应的操作模式 二、屏幕大小不一 投影机的默认分辨率为1024*768,其它分辨率都会造成图像或大或小。 三、屏幕颜色显示不正确或者会变色 1、视频线接点有问题,换视频线 2、接线时不牢固,有松动,接牢固(包括上线与下线) 四、点击不准确,操作不灵活 1、白板四周的红外对射窗口被灰尘(特别是粉笔灰)覆盖,导致无法定位。这需要经常清理干净。 2、定位不准确,偏差大于±1厘米。 3、USB线有问题 五、声音无法使用或太小 1、音源接法错误,重新正确连接 2、在班级的左音箱后面有一个开关,请不要关闭 3、在控右下方有两个控制声音大小的旋钮,左边的是音源输入,调节到适当大小 4、电脑上有两处控制音量的,右下角的音量图标,还有播放器也有控制音量的图标 5、音响线损坏,到其他班级换一根试试 六、展台无法使用或不清楚 1、电源损坏 2、中控没有切换到展台 3、自动调节有它的局限性,请重新自动调节 4、清洁镜头(请不要用普通的纸张或手指清洁) 七、白板程序安装后听到“叮咚”声且无法连接 1、按照路径找到没有正确安装的程序(需要显示所有隐藏文件),没有时从其它电脑拷过去 2、重新安装,安装时先连接到白板上再安装 3、用我们做系统的镜像重新做系统(C盘及桌面需移走所有个人有用的东西) 4、程序被杀毒软件杀掉,重新安装程序 八、在班级连接网线无法上网,显示为连接受限 1、当使用路由时不需要固定IP,但是当使用网线直接连接时必须使用固定IP,且子网掩码必须为三个255(IP修改方法详见城域网资料) 2、提醒:每个人上网时只能使用自己的IP,否则会造成冲突,影响大家上网 九、接网线时网络有时能上有时不能上 看右下角的本地连接图标,有变化的应该是网线或水晶头问题,无变化的应该是上游的网络存在问题(包括前些日子断线是因为开发区教育网中心机房核心交换机总是重新启动) 班级多媒体使用情况 现象:1、班级无人,投影机仍然开着;2、班级无人,中控的门仍然开着;3、班级触笔有损坏;4、有班级到今天还没有发放记录日志到学生手中;5、有班级学生没有及时记录或记录太少;6、有班级学生将日志放在家中,无法记录或检查。 建议:1、班主任将中控钥匙交给学生,督促维护多媒体的学生及时关机,及时关门;2、请老师爱护触笔,不要把触笔当作教育学生的棍棒使用;3、本周末将再次进行检查。

邮政OA系统常见问题排查手册

OA常见问题排查手册v 为便于解决OA使用过程中遇到的日常问题,实现OA系统故障的自我排查。省信息局制定“OA常见问题排查手册”,以供参考,后续内容将不断完善更新。 故障一:OA系统无法正常登陆 故障排查方法: 登录新浪、搜狐等其他网页,检查本机是否能正常上网。若其他网页无法登录,请联系相关技术人员恢复网络。若网络连接正常,执行下一步。 检验IE浏览器版本是否过高,检验步骤详见附件1,若IE浏览器版本为或及更高,请及时回退到,回退步骤详见附件2。 检验OA证书是否过期,检验步骤详见附件3,若证书已过期,请及时联系OA管理员安装新证书。 检验浏览器“安全设置”是否过高,检验步骤详见附件4,若浏览器“安全设置”正常,执行下一步。 查看浏览器历史浏览记录是否及时清理,若未清理,请及时清理。清理步骤详见附件5。 重新安装OA应用及插件,详细步骤见附件6。 换其他浏览器(如搜狗、360浏览器等)登录OA系统。 (每个操作完毕后,请关闭当前浏览器,重新登录OA,验证OA是否恢复正常) 故障二:OA系统可以正常登陆,但正文、附件无法打开 故障排查方法: 点击其他发文或收文,查看正文,验证其他文件是否可以正常打开。若只是一个文件无法正常浏览,说明此文件存在缺损。若全部文件都无法浏览,执行下一步。 打开本机的.doc文档,查看本机文档是否可以正常打开。若无法正常打开,

说明办公软件(WPS或office)存在问题,请重装办公软件。若本机文档可以正常打开,执行下一步。 检验IE浏览器版本过高,检验步骤详见附件1,若IE浏览器版本为或,请及时回退到,回退步骤详见附件2。 检验浏览器“安全设置”是否过高,检验步骤详见附件4,若浏览器“安全设置”正常,执行下一步。 重新安装OA应用及插件,详细步骤见附件6。 (每个操作完毕后,请关闭当前浏览器,重新登录OA,验证OA是否恢复正常) 故障三:发文无法正常盖章 故障排查方法: 电子印章只能在综合网上使用,因此要确保综合网的畅通。验证步骤详见附件7 综合网畅通的情况下,需检查电子印章客户端的运行情况。详见附件8 若综合网或电子印章客户端运行异常,请及时联系OA管理员处理故障。 故障四:打开文件时,提示安全声明。 故障排查方法: 请查看安全提示,是否提示与“宏”有关的提示信息,如附件9所示,可按附件9进行处理 故障五:打开文件时打不开,却弹出对话框提示word遇到问题需要关闭然后会提示用安全模式打开。 故障排查方法: 首先找到下面这个文件夹C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates会看到“” 这个文件,这是公用模板文件,应该是损坏了,直接将其删除,排除故障。

相关文档
最新文档