⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cslverchkapp.cpp

📁 visual c++ 实例编程
💻 CPP
字号:
// cslVerChkApp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "WebVersion.h"

LPCTSTR GetInetErrorName(DWORD err);

int main(int argc, char* argv[])
{
	if (argc != 3) {
		printf(" \n本程序示范如何通过 Web 获取程序版本号。\n\n");
		printf(" 使用方法: \n cslVerChkApp 文件名 服务器地址\n\n");
		printf(" 文件名 = 包含版本号的 ASCII 文件名。\n\n");
		printf(" 服务器地址 = FTP 服务器地址, 如:pub.chinafsdu.net\n");
		return -1;
	}

	if (CWebVersion::Online()) {
		CWebVersion webver(argv[2]);
		if (webver.ReadVersion(argv[1])) {
			printf("Major version = %08x\n", webver.dwVersionMS);
			printf("Minor version = %08x\n", webver.dwVersionLS);
			printf("Text = %s\n", webver.GetVersionText());
		
		} else {
			DWORD err = webver.GetError();
			printf("%s = %d\n", GetInetErrorName(err), err);
			if (err==ERROR_INTERNET_EXTENDED_ERROR) {
				printf("%s\n", webver.GetExtendedErrorInfo());
			}
		}
	} else {
		printf("没有在线,无法获取版本号。\n");
	}
	return 0;
}

//////////////////
// Handy helper function to get name of ERROR_INTERNET_XXX code.
// (Debug only)
//
LPCTSTR GetInetErrorName(DWORD err)
{
	static struct {
		DWORD err;
		LPCTSTR name;
	} errors[] = {
		{ ERROR_INTERNET_OUT_OF_HANDLES,_T("ERROR_INTERNET_OUT_OF_HANDLES") },
		{ ERROR_INTERNET_TIMEOUT,_T("ERROR_INTERNET_TIMEOUT") },
		{ ERROR_INTERNET_EXTENDED_ERROR,_T("ERROR_INTERNET_EXTENDED_ERROR") },
		{ ERROR_INTERNET_INTERNAL_ERROR,_T("ERROR_INTERNET_INTERNAL_ERROR") },
		{ ERROR_INTERNET_INVALID_URL,_T("ERROR_INTERNET_INVALID_URL") },
		{ ERROR_INTERNET_UNRECOGNIZED_SCHEME,_T("ERROR_INTERNET_UNRECOGNIZED_SCHEME") },
		{ ERROR_INTERNET_NAME_NOT_RESOLVED,_T("ERROR_INTERNET_NAME_NOT_RESOLVED") },
		{ ERROR_INTERNET_PROTOCOL_NOT_FOUND,_T("ERROR_INTERNET_PROTOCOL_NOT_FOUND") },
		{ ERROR_INTERNET_INVALID_OPTION,_T("ERROR_INTERNET_INVALID_OPTION") },
		{ ERROR_INTERNET_BAD_OPTION_LENGTH,_T("ERROR_INTERNET_BAD_OPTION_LENGTH") },
		{ ERROR_INTERNET_OPTION_NOT_SETTABLE,_T("ERROR_INTERNET_OPTION_NOT_SETTABLE") },
		{ ERROR_INTERNET_SHUTDOWN,_T("ERROR_INTERNET_SHUTDOWN") },
		{ ERROR_INTERNET_INCORRECT_USER_NAME,_T("ERROR_INTERNET_INCORRECT_USER_NAME") },
		{ ERROR_INTERNET_INCORRECT_PASSWORD,_T("ERROR_INTERNET_INCORRECT_PASSWORD") },
		{ ERROR_INTERNET_LOGIN_FAILURE,_T("ERROR_INTERNET_LOGIN_FAILURE") },
		{ ERROR_INTERNET_INVALID_OPERATION,_T("ERROR_INTERNET_INVALID_OPERATION") },
		{ ERROR_INTERNET_OPERATION_CANCELLED,_T("ERROR_INTERNET_OPERATION_CANCELLED") },
		{ ERROR_INTERNET_INCORRECT_HANDLE_TYPE,_T("ERROR_INTERNET_INCORRECT_HANDLE_TYPE") },
		{ ERROR_INTERNET_INCORRECT_HANDLE_STATE,_T("ERROR_INTERNET_INCORRECT_HANDLE_STATE") },
		{ ERROR_INTERNET_NOT_PROXY_REQUEST,_T("ERROR_INTERNET_NOT_PROXY_REQUEST") },
		{ ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND,_T("ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND") },
		{ ERROR_INTERNET_BAD_REGISTRY_PARAMETER,_T("ERROR_INTERNET_BAD_REGISTRY_PARAMETER") },
		{ ERROR_INTERNET_NO_DIRECT_ACCESS,_T("ERROR_INTERNET_NO_DIRECT_ACCESS") },
		{ ERROR_INTERNET_NO_CONTEXT,_T("ERROR_INTERNET_NO_CONTEXT") },
		{ ERROR_INTERNET_NO_CALLBACK,_T("ERROR_INTERNET_NO_CALLBACK") },
		{ ERROR_INTERNET_REQUEST_PENDING,_T("ERROR_INTERNET_REQUEST_PENDING") },
		{ ERROR_INTERNET_INCORRECT_FORMAT,_T("ERROR_INTERNET_INCORRECT_FORMAT") },
		{ ERROR_INTERNET_ITEM_NOT_FOUND,_T("ERROR_INTERNET_ITEM_NOT_FOUND") },
		{ ERROR_INTERNET_CANNOT_CONNECT,_T("ERROR_INTERNET_CANNOT_CONNECT") },
		{ ERROR_INTERNET_CONNECTION_ABORTED,_T("ERROR_INTERNET_CONNECTION_ABORTED") },
		{ ERROR_INTERNET_CONNECTION_RESET,_T("ERROR_INTERNET_CONNECTION_RESET") },
		{ ERROR_INTERNET_FORCE_RETRY,_T("ERROR_INTERNET_FORCE_RETRY") },
		{ ERROR_INTERNET_INVALID_PROXY_REQUEST,_T("ERROR_INTERNET_INVALID_PROXY_REQUEST") },
		{ ERROR_INTERNET_NEED_UI,_T("ERROR_INTERNET_NEED_UI") },
		{ ERROR_INTERNET_HANDLE_EXISTS,_T("ERROR_INTERNET_HANDLE_EXISTS") },
		{ ERROR_INTERNET_SEC_CERT_DATE_INVALID,_T("ERROR_INTERNET_SEC_CERT_DATE_INVALID") },
		{ ERROR_INTERNET_SEC_CERT_CN_INVALID,_T("ERROR_INTERNET_SEC_CERT_CN_INVALID") },
		{ ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR,_T("ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR") },
		{ ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR,_T("ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR") },
		{ ERROR_INTERNET_MIXED_SECURITY,_T("ERROR_INTERNET_MIXED_SECURITY") },
		{ ERROR_INTERNET_CHG_POST_IS_NON_SECURE,_T("ERROR_INTERNET_CHG_POST_IS_NON_SECURE") },
		{ ERROR_INTERNET_POST_IS_NON_SECURE,_T("ERROR_INTERNET_POST_IS_NON_SECURE") },
		{ ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED,_T("ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED") },
		{ ERROR_INTERNET_INVALID_CA,_T("ERROR_INTERNET_INVALID_CA") },
		{ ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP,_T("ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP") },
		{ ERROR_INTERNET_ASYNC_THREAD_FAILED,_T("ERROR_INTERNET_ASYNC_THREAD_FAILED") },
		{ ERROR_INTERNET_REDIRECT_SCHEME_CHANGE,_T("ERROR_INTERNET_REDIRECT_SCHEME_CHANGE") },
		{ ERROR_INTERNET_DIALOG_PENDING,_T("ERROR_INTERNET_DIALOG_PENDING") },
		{ ERROR_INTERNET_RETRY_DIALOG,_T("ERROR_INTERNET_RETRY_DIALOG") },
		{ ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR,_T("ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR") },
		{ ERROR_INTERNET_INSERT_CDROM,_T("ERROR_INTERNET_INSERT_CDROM") },
		{ ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED,_T("ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED") },
		{ ERROR_INTERNET_SEC_CERT_ERRORS,_T("ERROR_INTERNET_SEC_CERT_ERRORS") },
		{ ERROR_INTERNET_SEC_CERT_NO_REV,_T("ERROR_INTERNET_SEC_CERT_NO_REV") },
		{ ERROR_INTERNET_SEC_CERT_REV_FAILED,_T("ERROR_INTERNET_SEC_CERT_REV_FAILED") },
		{ 0, NULL }
	};

	for (int i=0; errors[i].name; i++) {
		if (err==errors[i].err) {
			return errors[i].name;
		}
	}
	return _T("Unknown error");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -