vs2008 wince 怎么生成cab

vs2008 wince 怎么生成cab,第1张

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11620738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存