国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

VC++創(chuàng)建msi文件的方法

2020-02-24 14:29:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

使用VC++可以編寫(xiě)自己的軟件安裝程序,其實(shí)這只是為了創(chuàng)建安裝程序類型的msi文件,MSI數(shù)據(jù)庫(kù)中的各種表都很復(fù)雜,無(wú)法清楚地研究出來(lái)。本文是武林技術(shù)頻道小編介紹的VC++創(chuàng)建msi文件的方法,一起來(lái)看看吧!

具體示例程序如下:

#pragma once//CRT headers.#include <TCHAR.H>//windows platform headers.#include <WINDOWS.H>//msi headers.#pragma comment(lib,"msi.lib")#include <MSI.H>#include <MSIQUERY.H>INT APIENTRY _tWinMain(HINSTANCE,HINSTANCE,LPTSTR,INT){MSIHANDLE msiHandle=NULL;//create msi database.UINT openResult=MsiOpenDatabase(_T("Setup.msi"),MSIDBOPEN_CREATEDIRECT,&msiHandle);//create msil database failed.if(openResult != ERROR_SUCCESS){LPVOID formatMsg=NULL;MSIHANDLE errorCode=MsiGetLastErrorRecord();//format error code to string.FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,NULL,errorCode,MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT),(LPTSTR)&formatMsg,0,NULL);//output error message.MessageBoxEx(NULL,(LPTSTR)formatMsg,_T("tip window"),MB_OK,MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT));//free message buffer.LocalFree(formatMsg);formatMsg=NULL;return -1;}//commit msi database.UINT commitResult=MsiDatabaseCommit(msiHandle);if(commitResult != ERROR_SUCCESS){LPVOID formatMsg=NULL;MSIHANDLE errorCode=MsiGetLastErrorRecord();//format error code to string.FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,NULL,errorCode,MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT),(LPTSTR)&formatMsg,0,NULL);//output error message.MessageBoxEx(NULL,(LPTSTR)formatMsg,_T("tip window"),MB_OK,MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT));//free message buffer.LocalFree(formatMsg);formatMsg=NULL;return -1;}//close msi database handle.UINT closeResult=MsiCloseHandle(msiHandle);if(closeResult != ERROR_SUCCESS){LPVOID formatMsg=NULL;MSIHANDLE errorCode=MsiGetLastErrorRecord();//format error code to string.FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,NULL,errorCode,MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT),(LPTSTR)&formatMsg,0,NULL);//output error message.MessageBoxEx(NULL,(LPTSTR)formatMsg,_T("tip window"),MB_OK,MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT));//free message buffer.LocalFree(formatMsg);formatMsg=NULL;return -1;}return 0;}</SPAN>

上述是武林技術(shù)頻道小編為大家介紹的VC++創(chuàng)建msi文件的方法,其實(shí)這個(gè)程序都可以實(shí)現(xiàn)簡(jiǎn)單的基本功能,我們可以根據(jù)自己的需要進(jìn)一步開(kāi)發(fā)其他個(gè)性化功能,以滿足自己的需求。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 于都县| 永州市| 黎川县| 吕梁市| 鄂州市| 武穴市| 富平县| 甘孜县| 宜宾市| 鹤岗市| 郯城县| 晴隆县| 泸水县| 西畴县| 临桂县| 双牌县| 上栗县| 兰州市| 雷波县| 全州县| 汾西县| 司法| 高要市| 哈尔滨市| 台北县| 顺昌县| 兴业县| 蓝田县| 个旧市| 都匀市| 华蓥市| 名山县| 万宁市| 正宁县| 合江县| 阿勒泰市| 彭阳县| 灵璧县| 喜德县| 六盘水市| 新源县|