Symbian DLL,Lib(动态加载动态库,静态加载动态库,静态加载静态库)
2007-08-28 00:33
609 查看
现在写的通用的平台,Client/Server Side 都要求插件形式,每一个插件宿主于一个动态库中,在Symbian中,动态的调用有些不是很方便,现在总结一下其各种类型库的加载形式。
0, 静态库:
1, 动态库:
a,静态加载:
b,动态加载:
动态库动态加载的几个问题:
1,在emulator上不能被load,原因有几个可能:
1.1此动态库中使用了C的库(如strlen/malloc,free etc.)并且在依赖的lib你手工加入了estlib.lib,编译成功,但无法正常load,因为Carbide.vs2.0.1在进行dll编译时,自动加入了estlib.lib,如果你再加入estlib.lib就会出现加载失败,有点弱智编译环境吧,当我使用OpenC时,也会出现这个问题。动态库必须使用CodeWarrior进行编译,才能在调试环境下进行加载,不然用carbide.vs2.01编译后,加载会返回-2错误。
1.2但是如果你使用exe就必须在工程中加入estlib.lib.因为exe缺省没有estlib.lib包含。
1.3能力:动态库的操作能力必须与加载它的exe/dll能力匹配,匹配原则为。exe/dll能力一定是被它加载的dll能力的子集(?)
2,在真机上加载失败:
2.1.没有访问目录的权限:
可能安装动态库的目录,加载程序没有访问权限,如sys/bin/目录,没有访问权限,或者private等目录,返回错误码一般为-46。可以为你的应用程序加入AllFiles能力
2.2. 加载目录错误(加载返回值一般为-1)
2.3.
0, 静态库:
1, 动态库:
a,静态加载:
b,动态加载:
动态库动态加载的几个问题:
1,在emulator上不能被load,原因有几个可能:
1.1此动态库中使用了C的库(如strlen/malloc,free etc.)并且在依赖的lib你手工加入了estlib.lib,编译成功,但无法正常load,因为Carbide.vs2.0.1在进行dll编译时,自动加入了estlib.lib,如果你再加入estlib.lib就会出现加载失败,有点弱智编译环境吧,当我使用OpenC时,也会出现这个问题。动态库必须使用CodeWarrior进行编译,才能在调试环境下进行加载,不然用carbide.vs2.01编译后,加载会返回-2错误。
1.2但是如果你使用exe就必须在工程中加入estlib.lib.因为exe缺省没有estlib.lib包含。
1.3能力:动态库的操作能力必须与加载它的exe/dll能力匹配,匹配原则为。exe/dll能力一定是被它加载的dll能力的子集(?)
2,在真机上加载失败:
2.1.没有访问目录的权限:
可能安装动态库的目录,加载程序没有访问权限,如sys/bin/目录,没有访问权限,或者private等目录,返回错误码一般为-46。可以为你的应用程序加入AllFiles能力
2.2. 加载目录错误(加载返回值一般为-1)
2.3.
相关文章推荐
- 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。
- 动态库DLL加载方式-静态加载和动态加载
- 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。
- 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。
- 静态链接库(LIB)和动态链接库(DLL),DLL的静态加载和动态加载,两种LIB文件。
- 基本概念都知道吗? TAG:lib dll 静态加载 动态加载
- lib加载 动态和静态
- 动态链接库dll的 静态加载 与 动态加载
- VC6 静态与动态加载Dll [示例代码]
- 静态库Lib和动态库Dll
- Linux下的静态库、动态库和动态加载库
- Linux下的静态库、动态库和动态加载库
- 查看静态库(.lib)和动态库(.dll)的导出函数的信息 error LNK2001: 无法解析的外部符号 _Delete
- vs项目中头文件(.h)静态库(.lib)和 动态库(.dll )的路径和配置问题
- 动态加载DLL和静态加载DLL的步骤
- 静态链接与动态加载DLL
- 动态链接库dll的 静态加载 与 动态加载
- C++ 加载dll 及调用lib 和 dll的 方法 和 动态库DLL与静态库lib的区别
- 动态库调用方式 动态加载 静态加载
- 静态链接与动态链接的区别 与 动态库与静态库的区别