VC++软件创业合作方法介绍
版本履历
1.0 | 2013年4月10日 沈阳松风科技有限公司:刘宁 | 初版 |
1.1 | 2013年10月4日 刘宁 | 修订版 |
|
|
|
|
|
|
|
|
|
2.2.11. CCfgFileMgr类相关程序复制... 8
QQ:1284930064
网站:http://www.1231jp.com
BLOG:http://q1q2q3q4q5q6ln.blog.163.com/
资料站:http://www.1231bg.com
合作前请仔细阅读条款。
1) 使用我方提供的VC2008开发的基础程序库,开发个人PC用,或企业PC用应用程序。
2) 代码由你保存(保密)。经测试可用后。然后由我方销售。取得利润5/5分成。
3) 建议3个月业余时间能够开发完成的程序最好,不建议写开发时间太长的程序。
4) 创业有风险,不要想一夜暴富,除非你我运气足够好。要做好3年卖不出去的准备。
5) 具体开发什么程序可自己定,也可我方提出任务。
6) 希望有技术,有闲暇,又想创业的人士加入我们
7) 经仔细考虑愿意合作者,小窗!
请先下载VS2008开发环境
然后下载VS2008SP1(补丁)环境
最后从网站(http://www.1231pd.com/tmp002_about.html)上下载代码例子。
开发本基础类库程序请参考下面说明。
需要把例子项目中的必要部分都复制到新的项目。
带有// BASE LIB -----------------------------------------注释的内容都是需要复制和参考的。
如果有疑问双方有疑问,可以随时沟通。
UNICODE,在共享DLL中使用MFC。
链接器清单文件中选择UAC执行级别‘需要管理员’。
请在选项中分别设置包含文件的目录
XXXX\VCSample\ComOptLib\Inc\ComOpt
XXXX\VCSample\ComOptLib\Inc\ComOptAd
XXXX\VCSample\ComOptLib\Inc\ComOptReg
XXXX\VCSample\ComOptLib\Inc\ComOptUi
请在选项中分别设置库文件的目录
XXXX\VCSample\ComOptLib\Lib
|
以上内容需要复制到新程序中。
其中
#define APP_RELEASE_DATE _T("20131004") // 最后一版编译时间
必须设置为程序开始销售的时间
#define APP_NAME _T("Encrypt Note Book") // 英文软件名
必须设置为标准的程序英文名
#define APP_README_URL _T("http://www.1231jp.com/colorfull/about/readme/00005_EncryptNoteBook.html") // 说明HTML
#define APP_BUY_URL _T("http://www.1231jp.com/tmp002_purchase.html") // 通用购买连接
#define APP_HELP_URL _T("http://www.1231jp.com/colorfull/about/help/00005_EncryptNoteBook.html") // 帮助HTML
#define APP_UPDATE_URL _T("http://www.1231jp.com/tmp002_download.html") // 通用下载连接
#define APP_LIC_URL _T("http://www.1231jp.com/colorfull/about/lic.html") // 通用授权协议
#define APP_ABOUT_URL _T("http://www.1231jp.com/colorfull/about/00005_EncryptNoteBook.html") // Abouthtml
以上连接中,APP_BUY_URL,APP_LIC_URL,APP_UPDATE_URL是通用的不需要修改
APP_HELP_URL和APP_ABOUT_URL和APP_README_URL需要修改为与程序对应的URL名
注意:该HTML由我方编写,会显示在应用程序的相应窗口上。
以下内容需要复制到新程序中,内容酌情修改,详细可参考例子程序。
|
AfxMessageBoxEx消息显示
ShowRegDlg显示注册对话框
ShowRegDlgOnlySetParam设置注册计算必要参数
CheckTimer定时检查主处理
TestCom测试函数
InitProcess启动进度处理
ExitInstance程序结束的时候,销毁内存
2.2.6. CXXXXApp.cpp的修改
|
App中的修改除了前面提到,主要都在InitInstance中
主要包含:
1) Log初期化(需要修改Log文件名)
APLLOGINIT(strPathT+ _T("\\"), _T("log_EncryptNoteBook.log"), _T("log_EncryptNoteBook.cfg"));
2) 多语言初期化(目录需要修改)
if(CMutilLang::GetInstance()->Init(_T("\\EncryptNoteBook")) == FALSE)
3) 关键配置文件加载
CCfgFileMgr::GetInstance()->Load();
4) 注册画面显示处理逻辑
CStringstrSaveCode = CCfgFileMgr::GetInstance()->AGetRegisterCode();
......
5) 程序封面显示
CDlgProcessdlgProcess;
...............
6) ShowRegDlgOnlySetParam函数中将来可能要修改服务器IP地址
2.2.7. CDlgAbout类相关程序复制
程序使用通用的About对话框
所以需要CDlgAbout类复制到新程序中,内容酌情修改,详细可参考例子程序。
其中OnBnClickedButtonCredit中请修改程序名,程序英文名,并将开发者名字记录
调用CDlgAbout的地方可参考例子。
CEncryptNoteBookDlg::OnSysCommand
系统BAR上菜单
void CEncryptNoteBookDlg::OnBnClickedButtonAbout()
UI上按钮
void CEncryptNoteBookDlg::OnAboutAbout()
菜单
应用程序主对话框必须包含菜单(主要是About,Update,Lic,Help,Register)
必须包含语言选择组合框
必须有About按钮,注册按钮
主对话框参考CEncryptNoteBookDlg的修改。
|
1) 语言选择处理函数OnCbnSelchangeComboLang
CMutilLang::GetInstance()->SetDefaultLang(strLang,_T("\\EncryptNoteBook"));
需要修改这个目录
2) OnTimer注册检查
3) OnBnClickedButtonReg画面上注册按钮的执行函数
4) OnAboutHelp帮助菜单处理
5) OnAboutBuy购买URL
6) OnAboutUpdate更新URL
7) OnAboutLicense 授权URL
8) OnAboutRegister显示注册画面
9) OnInitDialog
|
语言信息加载
l InitLang();本画面语言文字设置
l 注册按钮是否显示
CString strSaveCode =CCfgFileMgr::GetInstance()->AGetRegisterCode();
。。。。。
l 注册相关检查,SetTimer(1002,500000, 0);//500
l
程序需要支持多语言,搜索CMutilLang,可知道全部调用的地方。
所有需要替换多语言文字的地方需要调用GetSZ
多语言文字支持文件在EncryptNoteBook目录下,
Chinese.txt,English.txt,japanese.txt,defaultlang.txt
其中defaultlang.txt不需要修改
开发程序时候只需要改写Chinese.txt
然后通过GOOGLE翻译改写English.txt
japanese.txt由我方根据Chinese.txt翻译。
1) void CEncryptNoteBookDlg::OnBnClickedButtonAdd()
限制可参考OnBnClickedButtonAdd的处理。
2) CString strCode =CCfgFileMgr::GetInstance()->AGetRegisterCode();
取得注册码
3) dlg1.SetReturnInfo((char *)W2A(strCode.GetBuffer(0)),strCode.GetLength());
注册码分析
4) recnum 取得注册码信息的Code,需要你方提供给我方,以生成LicsenceCode。
5) CString strV =dlg1.GetReturnInfo(strK);
根据前面取得的注册码信息的Code取得实际数值,一般0代表不限制,其他代表限制数量
6) 由你方觉得在程序的何处填加限制代码,限制代码的功能需要告诉我方,便于测试
7) 关于注册的地方,有10处以上,MACRO_REG_CODE宏参考,开发代码的时候请检索全部MACRO_REG_CODE和例子程序进行对比
8)
2.2.11. CCfgFileMgr类相关程序复制
本类是基本配置文件,开发库部分使用了该类,
新程序中也可以在这里增加配置项目。
所以必须要复制该类到新程序中。
由你方自己选题,或我方提出任务。
选定题目后开始主要功能编写。
你方完成全面测试(Debug,Release)后确认无问题后,我方继续测试
我方测试主要包括
测试项目 |
|
是否能注册成功 |
|
是否检查了注册日期超过 |
|
是否检查了非本机注册用户 |
|
是否正确支持了多语言 |
|
菜单URL是否都正确 |
|
是否有注册限制 |
|
其他功能是否有严重BUG |
|
|
|
|
|
由我方完成
由我方完成
由我方在网站上销售。
类名的前缀,为查找方便而定。
开发库的独立,体现了共通和应用分离的思想,并且实现了程序的组建化。
类名 | 说明 |
CEncryptNoteBookDlg | 主窗口,主要的记事本的功能都在这里实现 |
CEncryptNoteBookApp | 主应用类,程序入口,出口,全局对象 |
CDlgSetup | 设置窗口 |
CDlgSelectRecord | 记录检索窗口 |
CDlgLogin | 登陆窗口 |
CDlgAddOrEditRecord | 添加/编辑记录信息窗口 |
CDatRecordListMgr | 记录信息的数据管理类 体现了UI和数据处理分离的思想(所谓MVC) |
CCfgFileMgr | 主配置文件 体现了UI和数据处理分离的思想(所谓MVC) |
CAboutDlg | 关于窗口 |
类名 | 说明 |
CDlgHtmlAdMain | 广告主窗口 |
CComEncryptionBase | 加密解密处理 |
CComOptHeader | 通用头文件 |
CDlgProcess | 启动封面,进度窗口 |
CCommonFunc | 通用函数类 |
CDlgInHtmlAd | 内嵌广告窗口 |
CCfgCodeGenManager | 唯一ID生成类 |
CDlgTempMain | 带有广告的应用程序的主窗口类 |
CCfgfilebase | 基本配置文件类 |
CMFCStdioFileEx | 支持UNICODE的文本文件处理类 |
CAnsiOrOsFunc | 通用函数的封装 |
CDlgBrowserDir | 目录查看对话框 |
CLogbase | 日志处理基本类 |
CMFCPicture | 图片显示 |
CUTF8StdioFileEx | UTF8文件处理 |
|
|
开发库是群主多年的积累,大家也可以试验着参考此方法积累自己的开发库。
本开发库的正式名称是:《熠彩MFC扩展库》
l VCSample\ComOptLib\Inc开发库头文件
n ComOpt基本类库
n ComOptAd广告库
n ComOptReg注册信息库
n ComOptUi界面控件库
l VCSample\ComOptLib\Lib开发库库文件
l VCSample\Debug开发库必要DLL文件(DEBUG)
l VCSample\Release开发库必要DLL文件(Release)
3.1. ComOpt基本类库介绍
类名 | 说明 |
CMFCPicture | 图片处理类 |
CComEncryptionBase | 加密解密处理 |
CComOptHeader | 通用头文件 |
CDlgProcess | 启动封面,进度窗口 |
CCommonFunc | 通用函数类 可通过头文件了解具体功能,基本上看函数名就知道功能了 |
CCfgCodeGenManager | 唯一ID生成类 |
CCfgfilebase | 基本配置文件类 |
CMFCStdioFileEx | 支持UNICODE的文本文件处理类 |
CAnsiOrOsFunc | 通用函数的封装 |
CDlgBrowserDir | 目录查看对话框 |
CLogbase | 日志处理基本类 |
3.2. ComOptReg基本类库介绍
类名 | 说明 |
CMutilLang | 多语言处理 |
CDlgComRegister | 通用注册对话框处理类 |
|
|
3.3. ComOptUI基本类库介绍
类名 | 说明 |
CComOptDlgCommAttrib | 属性对话框 |
CComOptUIOnlineUpdate | 自动升级 |
CMFCComboBoxEx1 | 组和框 |
CMFCListBoxEx | 列表框 |