1、先安装好WinCE CAB Manager软件。
2、 VS中右击启动项目名称(加黑的那个),选择“属性”;在打开的界面的“应用程序”,下面的“图标和清单”中,选择一个本地的ico图标。这个图标是打包完成之后,软件安装到客户端,在桌面呈现的快捷图标。
3、在启动项目下面会多出一个ico文件;
4、VS中右击解决方案->添加->新建项目,新建一个“智能设备CAB项目”;
5、 新建完成,解决方案下多出一个安装部署的项目;
6、右击刚刚新建的项目(如上图所示的“Test”项目),选择“添加”->“项目输出”,得到下图所示的界面;
1) 在界面上的“项目”一栏,选择当前解决方案下面的启动项目(一个解决方案下面可有有多个项目,项目名称加黑那个就是了);
2) 然后,在下面的框里面按住Ctrl,选择“主输出”、“本地化资源”、“内容文件”,点击“确定”;
8、 接着添加安装包在客户端安装完成之后,在客户端桌面呈现的快捷方式;
1) 右击项目名称,如Test,选择“视图”->“文件系统”;
2) 选择“应用程序文件夹”,右击“主输出来自……”,选择“创建主输出来自……的快捷方式”;
3) 对刚创建的快捷方式,命名自己想要的名称;
4) 右击刚刚新建的快捷方式,选择“属性窗口”,在属性窗口中,光标定位到Target右面的“主输出”,点击后面的按钮进行设置;
5) 在d出的窗口中,选择“添加文件”,将步骤1中添加的ico文件,添加进来;
注:ico文件,从启动项目的文件夹下进行添加。步骤1,已经将ico文件加载到了启动项目下面。
6) 最后双击,“主输出来自……”,完成快捷方式的设置。
8. 右击安装部署项目的名称,如Test,选择生成;但是会生成失败,并在错误窗口中报出如下错误。
这个错误不用去管它,生成的最终目的是为了获得一个inf文件
9. 打开WinCE CAB Manager软件,“文件”->“新建”->“下一步”,输入公司名称和应用程序名称;后面一直默认,点击“下一步”即可。
10. 再,选择“文件”->“导入”->“从INF文件导入”,找到之前生成的INF文件,并双击;
11. 然后,点击“完成”,结束导入;
12. 导入完成之后,右击快捷方式,选择“添加”;
13. 给快捷方式命名
14. 点击下一步,将快捷方式,指向要运行的程序;
15. 点击下一步,设置快捷方式存放的位置;设置完成以后,点击“完成”结束快捷方式的设置;
注:根据Windows Mobile系统的不同,设置的路径可能不同。
16. 点击“文件”->“另存为”,完成CAB打包。
在stdafx.h下 添加#import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")这个msado15.dll是微软公司提供的ADO相关组件的一个dll。你可以在自己电脑下C盘中搜索下msado15.dll文件 然后把它的目录替换掉上面这个目录就好。
输入完上述内容后 先编译一下工程,而后在执行其他 *** 作就可以了。
示例代码:(以下代码是访问oracle数据库的,也可以用在其他类型数据库中)
void CadotDlg::OnBnClickedBtnQuery()
{
// TODO: 在此添加控件通知处理程序代码
CoInitialize(NULL)
_ConnectionPtr pConn(__uuidof(Connection))
_RecordsetPtr pRst(__uuidof(Recordset))
try
{
pConn->ConnectionString="Provider=MSDAORA.1"
"User ID=XHPassword=XHData Source=GPSPersist Security Info=False"
HRESULT HR=pConn->Open("","","",adConnectUnspecified)
if(SUCCEEDED(HR))
MessageBox(_T("XHGPS数据库连接成功!"))
pRst=pConn->Execute("select * from SMSSEND",NULL,adCmdText)
while(!pRst->adoEOF)
{
_variant_t vID
CString strID
vID=pRst->GetCollect("ID")
strID=((char*)(_bstr_t)vID)
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(strID)//_bstr_t类中有对char*的重载函数
pRst->MoveNext()
}
pRst->Close()
pConn->Close()
pRst.Release()
pConn.Release()
CoUninitialize()
}
catch(_com_error e)
{
CString str
str.Format("对数据库 *** 作出错! %s",(char *)e.Description())
AfxMessageBox(str)
return
}
}
VS2010和VS2012或者sv2008和VS2010,高版本VS编译都会出现,使用VS2008的D:\Program Files\Microsoft Visual Studio 9.0\VC\bin目录下的cvtres.exe替换到VS2010版本VS目录下再编译成功。如果不行再用以下 *** 作
上网搜索发现是嵌入清单的问题,于是对该工程以及所有依赖工程进行如下 *** 作右键->工程属性->配置属性->清单工具->输入和输出->嵌入清单,选择[否]
VS2010 2012CLR更换NET版本不像C#可以项目属性直接更改,需要修改 *.vcxproj里面 <PropertyGroup Label="Globals">节点添加以下内容
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
VS2012使用VS2010编译vc++项目以支持XP系统运行,项目属性 常规平台工具集选择Visual Studio 2010 (v100),必须同时安装VS2010 2012
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)