关于复用
开发语言:
1.C 熟悉
2.C++ 熟悉
3.java 略懂,不熟
4.php 略懂,不熟
5.js 不懂
6.delphi / Object Pascal 相当熟悉
7.c# 略懂,不熟
开发工具
1.VC6.0 熟悉
2.gcc 熟悉
3.delphi 相当熟悉
4.VC2005 VC2008 熟悉,用的不多
5.Eclipse 略懂
6.c++ builder 熟悉
操作系统
1.windows 开发相当熟悉
2.Linux 熟悉
3.Android 了解
4.iOS 不懂
5.其它嵌入式或。。。
开发框架平台
1.J2EE 了解
2.NET 了解
3.Android 不懂
4.iOS 不懂
系统框架
1.c/s 相当熟悉
2.b/s 略懂
3.异构 略懂
4.高性能 略懂
现在的商业/工业系统大多很复杂, 由好几个系统组成, 从操作系统平台来说, 几乎全多包涵。
从开发语言来说也无所不包, 后台底层用C , 终端 用java, 桌面客户界面用delphi或其它。
站在一个 架构师 的立场上;
前提是要了解 各个平台,又要了解各种语言。在此基础上才能 按需 动用 各种技术手段搭配组合。
既要 满足 商业业务, 也要满足日后扩展, 更要满足当前投入的成本。
从架构师的设计来看, 是从上往下走的。我认为架构师在肚子有货的前提下才能从上往下走。
因此,我想我应该从下往上走,脚踏实地才能走的踏实。
一. C库 API
windows平台 提供了整套的 API 给 其它厂家在此基础上做应用开发, 正因为如此, 各类关键
在windows的平台上欣欣向荣, 比如QQ, 比如金蝶, 比如下载工具,凡是所能在windows桌面上
看到的任何一个软件,无不建筑在windows上; windows才大行其道,也为微软带来的丰厚的回报。
这也就是复用的力量。有人说基与MFC, 其实一样的道理,MFC最后还是调用 windows api.
1.1 源码复用
1.按照个功能,模块的划分, 写.h文件 写.cpp实现文件
2.把.h .cpp文件发布, 写接口文档说明
3.在新项目中把.h和.cpp文嘉加入进去。
4.调用库函数
1.2 静态库
1.创建静态库项目
2.创建接口文件。h 和实现文件 cpp
3.生成lib文件
4. 对h 和lib文件进行发布,并写接口说明文档。
5.在新项目中把.h(#include)和lib(link)文件加入; 或者统一的把lib目录和.h文件目录 放在vc设置中的include ,lib
6.调用库函数
1.3 动态库
1.创建静态库项目
2.创建接口文件。h 和实现文件 cpp
3.生成lib文件 dll文件
4. 对h 和lib文件 dll文件 进行发布,并写接口说明文档。
5.静态调用 在新项目中把.h(#include)和lib(link)文件加入; 或者统一的把lib目录和.h文件目录 放在vc设置中的include ,lib
6.动态调用 仅需要.h文件, 运行时候需要dll文件, .h文件里包含 函数指针声明。
6.调用库函数
源代码复用与静态动态库的区别:
1.需要复制代码到项目中。
2.代码对外部开放,不利于商业封装。
动态库与静态库的区别:
1.静态库在程序运行时就会装入内存,而动态库在调用的时候才装入(前提是动态库动态加载)
2.动态链接需要发行DLL,但EXE本身比较小,静态链接不需要发行DLL,但本身就比较大了。
3.动态库在程序发行的时候需要更新DLL, 而静态库需要编译 Lib 需要编译 EXE,
各种语言与开发工具的互调。
动态库DLL的接口 声明必须用 __stdcall ,因为windows的API全是采用这种形式, 做到统一方便在其它语言和工具中使用。
VC生成:
1. 声明 int __stdcall Fun() 需要加DLL ,
2. 导出 最好加导出文件.def
3. 发布 .h lib dll文件 并写接口说明
VB调用
以前用过,忽略
Delphi调用
写一个 pas文件
Function Fun( ) : integer; stdcall; external 'TestLib.dll';
把Dll文件放在Exe目录, 不需要.h和lib文件
C++B调用
方法一。 动态调用 LoadLibrary
方法二。 1. implib addit.lib addit.dll 生成新的lib文件 , 符合C++ builder
2. .h文件 extern —stdcall void addit( int a, int b, int *c);
3. 加入 .h 和 lib的文件到项目 到项目
4. 编译执行
JAVA调用
JNI 以前用过,这边不写了。
是否还有其它方法 就不知道了。
PHP调用
1.需要php_w32api.dll
2.参考代码
dl("php_w32api.dll");//需要php拓展库php_w32api.dll
w32api_register_function("kernel32.dll","GetTickCount","long");
反操作, 其它语言或开发环境生成的Dll 给VC用;
不做细细说明。
Unix/Linux 的静态库和动态库
网上有个文章说的很详细 http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94271
以下是摘抄:
1. 无论要生成静态或动态, 都需要形成 .o文件 # gcc -c hello.c =》hello.o
2. 生成静态文件 ar cr libmyhello.a hello.o =》 libmyhello.a
3. 使用静态文件: 1.包含.h文件 ,编译的时候指定静态文件 gcc -o hello main.c -L. -lmyhello =》生成执行文件 执行。
5. 生成动态文件 gcc -shared -fPCI -o libmyhello.so hello.o =》libmyhello.so
6. 使用动态文件: 1. 包含头文件 , 编译 # gcc -o hello main.c -L. -lmyhello
(注意,编译命令和静态无安全一样;也就是说在编译的时候 不知道要加载动态库还是静态库。gcc优选去/usr/lib /lib找动态库)
如何让Api兼容 windows / Unix
1.兼容的目的:1.让代码更广泛的应用, 2.如果代码个功能的增加 减少两个平台的开发工作量。
2.兼容的麻烦:1.要尽量考虑 两个操作系统都能使用的 函数,库等。 2. 在代码增加的时候需要考虑两个平台的兼容。
3.由上面两条导致开发工作量增加,维护工作量增加。 开发人员的能力成本加大。
需要评论, 去论坛
http://topic.csdn.net/u/20120714/10/620418da-074f-4188-bf7a-e53f28bdde65.html?71517
二. C++类库 复用
开发语言:
1.C 熟悉
2.C++ 熟悉
3.java 略懂,不熟
4.php 略懂,不熟
5.js 不懂
6.delphi / Object Pascal 相当熟悉
7.c# 略懂,不熟
开发工具
1.VC6.0 熟悉
2.gcc 熟悉
3.delphi 相当熟悉
4.VC2005 VC2008 熟悉,用的不多
5.Eclipse 略懂
6.c++ builder 熟悉
操作系统
1.windows 开发相当熟悉
2.Linux 熟悉
3.Android 了解
4.iOS 不懂
5.其它嵌入式或。。。
开发框架平台
1.J2EE 了解
2.NET 了解
3.Android 不懂
4.iOS 不懂
系统框架
1.c/s 相当熟悉
2.b/s 略懂
3.异构 略懂
4.高性能 略懂
现在的商业/工业系统大多很复杂, 由好几个系统组成, 从操作系统平台来说, 几乎全多包涵。
从开发语言来说也无所不包, 后台底层用C , 终端 用java, 桌面客户界面用delphi或其它。
站在一个 架构师 的立场上;
前提是要了解 各个平台,又要了解各种语言。在此基础上才能 按需 动用 各种技术手段搭配组合。
既要 满足 商业业务, 也要满足日后扩展, 更要满足当前投入的成本。
从架构师的设计来看, 是从上往下走的。我认为架构师在肚子有货的前提下才能从上往下走。
因此,我想我应该从下往上走,脚踏实地才能走的踏实。
一. C库 API
windows平台 提供了整套的 API 给 其它厂家在此基础上做应用开发, 正因为如此, 各类关键
在windows的平台上欣欣向荣, 比如QQ, 比如金蝶, 比如下载工具,凡是所能在windows桌面上
看到的任何一个软件,无不建筑在windows上; windows才大行其道,也为微软带来的丰厚的回报。
这也就是复用的力量。有人说基与MFC, 其实一样的道理,MFC最后还是调用 windows api.
1.1 源码复用
1.按照个功能,模块的划分, 写.h文件 写.cpp实现文件
2.把.h .cpp文件发布, 写接口文档说明
3.在新项目中把.h和.cpp文嘉加入进去。
4.调用库函数
1.2 静态库
1.创建静态库项目
2.创建接口文件。h 和实现文件 cpp
3.生成lib文件
4. 对h 和lib文件进行发布,并写接口说明文档。
5.在新项目中把.h(#include)和lib(link)文件加入; 或者统一的把lib目录和.h文件目录 放在vc设置中的include ,lib
6.调用库函数
1.3 动态库
1.创建静态库项目
2.创建接口文件。h 和实现文件 cpp
3.生成lib文件 dll文件
4. 对h 和lib文件 dll文件 进行发布,并写接口说明文档。
5.静态调用 在新项目中把.h(#include)和lib(link)文件加入; 或者统一的把lib目录和.h文件目录 放在vc设置中的include ,lib
6.动态调用 仅需要.h文件, 运行时候需要dll文件, .h文件里包含 函数指针声明。
6.调用库函数
源代码复用与静态动态库的区别:
1.需要复制代码到项目中。
2.代码对外部开放,不利于商业封装。
动态库与静态库的区别:
1.静态库在程序运行时就会装入内存,而动态库在调用的时候才装入(前提是动态库动态加载)
2.动态链接需要发行DLL,但EXE本身比较小,静态链接不需要发行DLL,但本身就比较大了。
3.动态库在程序发行的时候需要更新DLL, 而静态库需要编译 Lib 需要编译 EXE,
各种语言与开发工具的互调。
动态库DLL的接口 声明必须用 __stdcall ,因为windows的API全是采用这种形式, 做到统一方便在其它语言和工具中使用。
VC生成:
1. 声明 int __stdcall Fun() 需要加DLL ,
2. 导出 最好加导出文件.def
3. 发布 .h lib dll文件 并写接口说明
VB调用
以前用过,忽略
Delphi调用
写一个 pas文件
Function Fun( ) : integer; stdcall; external 'TestLib.dll';
把Dll文件放在Exe目录, 不需要.h和lib文件
C++B调用
方法一。 动态调用 LoadLibrary
方法二。 1. implib addit.lib addit.dll 生成新的lib文件 , 符合C++ builder
2. .h文件 extern —stdcall void addit( int a, int b, int *c);
3. 加入 .h 和 lib的文件到项目 到项目
4. 编译执行
JAVA调用
JNI 以前用过,这边不写了。
是否还有其它方法 就不知道了。
PHP调用
1.需要php_w32api.dll
2.参考代码
dl("php_w32api.dll");//需要php拓展库php_w32api.dll
w32api_register_function("kernel32.dll","GetTickCount","long");
反操作, 其它语言或开发环境生成的Dll 给VC用;
不做细细说明。
Unix/Linux 的静态库和动态库
网上有个文章说的很详细 http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94271
以下是摘抄:
1. 无论要生成静态或动态, 都需要形成 .o文件 # gcc -c hello.c =》hello.o
2. 生成静态文件 ar cr libmyhello.a hello.o =》 libmyhello.a
3. 使用静态文件: 1.包含.h文件 ,编译的时候指定静态文件 gcc -o hello main.c -L. -lmyhello =》生成执行文件 执行。
5. 生成动态文件 gcc -shared -fPCI -o libmyhello.so hello.o =》libmyhello.so
6. 使用动态文件: 1. 包含头文件 , 编译 # gcc -o hello main.c -L. -lmyhello
(注意,编译命令和静态无安全一样;也就是说在编译的时候 不知道要加载动态库还是静态库。gcc优选去/usr/lib /lib找动态库)
如何让Api兼容 windows / Unix
1.兼容的目的:1.让代码更广泛的应用, 2.如果代码个功能的增加 减少两个平台的开发工作量。
2.兼容的麻烦:1.要尽量考虑 两个操作系统都能使用的 函数,库等。 2. 在代码增加的时候需要考虑两个平台的兼容。
3.由上面两条导致开发工作量增加,维护工作量增加。 开发人员的能力成本加大。
需要评论, 去论坛
http://topic.csdn.net/u/20120714/10/620418da-074f-4188-bf7a-e53f28bdde65.html?71517
二. C++类库 复用