win32模版文件分析(VS2013)

在VS2013中建立末模版工程会生成下面这些文件:

External Dependencies包含要用到的所有没有加入工程的文件;

Header Files包含工程中要用到的头文件;

Resource Files各种资源文件;

Source Files各种cpp原文件。


头文件参数


Header Files/resource.h


//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by Win32Project4.rc
//

#define IDS_APP_TITLE			103

#define IDR_MAINFRAME			128
#define IDD_WIN32PROJECT4_DIALOG	102
#define IDD_ABOUTBOX			103
#define IDM_ABOUT			104
#define IDM_EXIT			105
#define IDI_WIN32PROJECT4		107
#define IDI_SMALL			108
#define IDC_WIN32PROJECT4		109
#define IDC_MYICON			2
#ifndef IDC_STATIC
#define IDC_STATIC			-1
#endif
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_NO_MFC			130
#define _APS_NEXT_RESOURCE_VALUE	129
#define _APS_NEXT_COMMAND_VALUE		32771
#define _APS_NEXT_CONTROL_VALUE		1000
#define _APS_NEXT_SYMED_VALUE		110
#endif
#endif



Header Files/stdafx.h


// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>

// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>


// TODO: reference additional headers your program requires here



Header Files/targetver.h

#pragma once

// Including SDKDDKVer.h defines the highest available Windows platform.

// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.

#include <SDKDDKVer.h>



Header Files/Win32Project4.h

#pragma once

#include "resource.h"





CPP文件参数

Source Files/atdafx.cpp

// stdafx.cpp : source file that includes just the standard includes
// Win32Project4.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

// TODO: reference any additional headers you need in STDAFX.H
// and not in this file


Source Files/<工程名>.cpp


这个文件中有5个函数(一个主函数),3个结构体,1个宏定义。

下面是参数&声明定义:

// Win32Project4.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "Win32Project4.h"

#define MAX_LOADSTRING 100

// 各种全局变量
HINSTANCE hInst;			// 当前实例
TCHAR szTitle[MAX_LOADSTRING];		// 标题栏文字
TCHAR szWindowClass[MAX_LOADSTRING];	// 主窗口类名

// 模块函数声明

// 注册该窗口应用程序,参数:窗口句柄
ATOM			MyRegisterClass(HINSTANCE hInstance); 

// 窗口消息回调函数,保存句柄并创建主窗口 成功返回true
BOOL			InitInstance(HINSTANCE, int); 

// 获取主窗口消息
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);

// 处理About对话框的各种消息 
INT_PTR CALLBACK	About(HWND, UINT, WPARAM, LPARAM); 

主函数_tWinMain共接收4个参数,详情见注释:

	int APIENTRY _tWinMain(
		_In_ HINSTANCE hInstance,         // 应用程序当前实例句柄
		_In_opt_ HINSTANCE hPrevInstance, // 应用实例指向其他实例的句柄
		_In_ LPTSTR    lpCmdLine,         // 指向应用程序命令行参数的指针
		_In_ int       nCmdShow           // 指定窗口显示方式
		)          
{
	UNREFERENCED_PARAMETER(hPrevInstance); // 禁止显示hPrevInstance变量未使用的警告
	UNREFERENCED_PARAMETER(lpCmdLine); // 禁止显示lpCmdLine变量未使用的警告

 	// TODO: Place code here.
	MSG msg;
	HACCEL hAccelTable;

	// Initialize global strings
	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); // 初始化全局字符串
	LoadString(hInstance, IDC_WIN32PROJECT4, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance); // 装载字符串表资源

	// 应用初始化,初始化失败返回 FALSE
	if (!InitInstance (hInstance, nCmdShow))
	{
		return FALSE;
	}

	//LoadAccelerators调入加速键表
	//hInstance模块的一个事例的句柄
	//(LPCTSTR)IDC_FIRSTVIEW指向一个以空结尾的字符串的指针,
	//该字符串包含了即将调入的加速键表的名字
	hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WIN32PROJECT4));

	// 主消息循环:
	while (GetMessage(&msg, NULL, 0, 0))
	{

		//TranslateAccelerator    翻译加速键表。该函数处理菜单
		//命令中的加速键。如果失败则执行TranslateMessage,DispatchMessage
		//msg.hwnd    窗口句柄,翻译该窗口的消息
		//hAccelTable   加速键表句柄
		//&msg   MSG结构体指针
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
		{
			TranslateMessage(&msg); // 将虚拟键消息转换为字符消息
			DispatchMessage(&msg); // 传送消息给窗口程序
		}
	}
        // 主消息循环结束
	return (int) msg.wParam; // 返回退出相关消息
}

MyRegisterClass用来注册窗口应用程序。定义见下:

ATOM MyRegisterClass(HINSTANCE hInstance)
{
	WNDCLASSEX wcex;


	wcex.cbSize = sizeof(WNDCLASSEX); // 窗口类大小

	wcex.style		= CS_HREDRAW | CS_VREDRAW; // 窗口类型
	wcex.lpfnWndProc	= WndProc; // 指定窗口处理函数为WndProc
	wcex.cbClsExtra		= 0; // 窗口类扩展
	wcex.cbWndExtra		= 0; // 窗口实例扩展
	wcex.hInstance		= hInstance; // 当前实例句柄
	wcex.hIcon		= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WIN32PROJECT4)); // 窗口图标
	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW); // 窗口中使用的光标类型
	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1); // 窗口背景色
	wcex.lpszMenuName	= MAKEINTRESOURCE(IDC_WIN32PROJECT4);  // 窗口中菜单样式
	wcex.lpszClassName	= szWindowClass; // 窗口类名
	wcex.hIconSm		= LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); // 设置窗口小图标

	return RegisterClassEx(&wcex); // 注册窗口类,注册成功返回窗口类标识号,失败返回NULL
}



WinProc函数定义:

//
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PURPOSE:  Processes messages for the main window.
//
// WM_COMMAND	- 当用户从菜单选中一个命令项目、
// 当一个控件发送通知消息给去父窗口
// 或者按下一个快捷键将发送 WM_COMMAND 消息
// WM_PAINT	  - 绘制主窗口
// WM_DESTROY - 发送退出程序消息

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message)
	{
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Parse the menu selections:
		switch (wmId)
		{
		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		// TODO: Add any drawing code here...
		EndPaint(hWnd, &ps);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}

WndProc函数定义:

INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(lParam);
	switch (message)
	{
	case WM_INITDIALOG:
		return (INT_PTR)TRUE;

	case WM_COMMAND:
		if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
		{
			EndDialog(hDlg, LOWORD(wParam));
			return (INT_PTR)TRUE;
		}
		break;
	}
	return (INT_PTR)FALSE;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: NCBI-BLAST-2.13.0-win64是一种基于谷氨酰胺脲和其他生物信息学技术的序列比对软件包。这个软件被广泛用于分析DNA,RNA和蛋白质序列,使得比对过程能够更加快速精确。该软件中包含了多个工具,如核酸和蛋白质序列比对,重排序,序列相似性搜索,基于模板的序列比对等。 NCBI-BLAST-2.13.0-win64具有许多特性和功能,例如可以查询各种序列数据库,对于不同的序列类型具有不同的比对策略,可以进行加速计算和多进程处理,支持多种输出格式,可以进行本地安装等等。此外,其还具有自定义参数和调整比对参数等高级设置。 该软件包已经成为生物医学研究中的重要工具之一,用于生物数据处理、统计学分析以及建立模型和预测。NCBI-BLAST-2.13.0-win64能够帮助研究人员更好的理解生物序列之间的相似性,从而推断其功能和进化关系。这对于进行生物大数据分析和快速挖掘生物信息,为生物医学研究提供更多帮助的重要性无法忽视。 ### 回答2: NCBI-BLAST-2.13.0 -win64 是一款开源软件,是 National Center for Biotechnology Information (NCBI) 提供的序列比对工具之一。该软件适用于 Windows 64 位操作系统,可以在命令行下运行。其中,BLAST 是 Basic Local Alignment Search Tool 的缩写,指的是基本局部比对搜索工具,常用于在大量的生物序列中寻找相似的序列。 NCBI-BLAST-2.13.0 -win64 支持多种输入文件格式,包括 FASTA、GenBank、EMBL 等。它可以对两种或多种序列之间进行 BLAST 分析,查找它们之间的相似性和差异性。与其他序列比对软件相比,NCBI-BLAST-2.13.0 -win64 具有高速度、高准确度、灵活性等特点。此外,它也可以进行多种参数的自定义设置,以适应不同的比对需求。 总之,NCBI-BLAST-2.13.0 -win64 是一款强大的生物信息学工具,可以帮助研究者在大量的生物序列数据中寻找相似的序列,从而推测它们的结构、功能、演化关系等重要信息,为生物学研究提供有力支持。 ### 回答3: ncbi-blast-2.13.0 -win64是一个基于NCBI平台开发的Blast程序的版本号,在Windows操作系统下可用。Blast是一种用于生物信息学研究的算法,用于比对和分析DNA、RNA和蛋白质序列。NCBI-Blast是由美国国家医学图书馆(National Library of Medicine)所提供的一个全球著名的互联网爬虫、文献检索和生物信息资源的网站。NCBI-Blast提供了多个版本,用于不同的平台和操作系统。NCBI-Blast-2.13.0 -win64是专门为Windows 64位操作系统设计开发的版本。它具有以下特点:可以快速比对大规模的DNA、RNA和蛋白质序列;提供多种比对算法,可以根据需要选择适合的算法;支持本地计算机和远程服务器,方便用户按照不同的需求进行使用。总之,NCBI-Blast-2.13.0 -win64是专门为方便Windows 64位用户利用Blast算法比对和分析生物序列而开发的一个工具,可以极大地提高生命科学研究的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值