您的位置:首页 > 其它

vc 学习笔记 之工程

2008-08-07 11:07 246 查看
记录学习过程中的一些点滴:

在做工程的时候遇到,在遇到解决方案里的菜单有用到项目里的类来创建变量,对于不在同一目录下的项目来说,这里是用到的的把同类的放到一起,包含头文件(全局用到的)放在inc文件夹里,

1..lib文件放到lib文件夹里(这里的拷贝是设置vs2005,项目—》右键属性-》配置属性-》生成事件-》生成后事件-》命令行copy $(SolutionDir)$(ConfigurationName)\vss_carinfo.lib ..\lib\vss_carinfo.lib,这样可以不用人工把生成好的lib拷到文件夹,

2.注意c++常规----附加包含目录设置为:..\inc,

3.连接器常规-----附加库目录设置为..\lib。

对余菜单的函数如下

void CMainFrame::OnMenuTest()

{//不用包含头文件,因为已经在stdafx.h里加载了#include "IVSS_CarInfoLibrary.h" #pragma comment(lib,"vss_carinfo.lib")

//

CtestDlg *dlg = new CtestDlg();

dlg->DoModal();

delete dlg;

}

注:以下stdafx.h的内容

// stdafx.h : 标准系统包含文件的包含文件,

// 或是经常使用但不常更改的

// 特定于项目的包含文件

#pragma once

#ifndef _SECURE_ATL

#define _SECURE_ATL 1

#endif

#ifndef VC_EXTRALEAN

#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料

#endif

// 如果您必须使用下列所指定的平台之前的平台,则修改下面的定义。

// 有关不同平台的相应值的最新信息,请参考 MSDN。

#ifndef WINVER // 允许使用特定于 Windows XP 或更高版本的功能。

#define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。

#endif

#ifndef _WIN32_WINNT // 允许使用特定于 Windows XP 或更高版本的功能。

#define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。

#endif

#ifndef _WIN32_WINDOWS // 允许使用特定于 Windows 98 或更高版本的功能。

#define _WIN32_WINDOWS 0x0410 // 将它更改为适合 Windows Me 或更高版本的相应值。

#endif

#ifndef _WIN32_IE // 允许使用特定于 IE 6.0 或更高版本的功能。

#define _WIN32_IE 0x0600 // 将此值更改为相应的值,以适用于 IE 的其他版本。值。

#endif

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的

// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏

#define _AFX_ALL_WARNINGS

#include <afxwin.h> // MFC 核心组件和标准组件

#include <afxext.h> // MFC 扩展

#include <afxdisp.h> // MFC 自动化类

#ifndef _AFX_NO_OLE_SUPPORT

#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持

#endif

#ifndef _AFX_NO_AFXCMN_SUPPORT

#include <afxcmn.h> // MFC 对 Windows 公共控件的支持

#endif // _AFX_NO_AFXCMN_SUPPORT

#define __MYSQL_DEF__

#include "IVSS_Corelibrary.h"

#pragma comment(lib,"vss_core.lib")

#include "IVSS_MysqlLibrary.h"

#pragma comment(lib,"vss_mysql.lib")

#include "IVSS_GeoLibrary.h"

#pragma comment(lib,"vss_geo.lib")

#include "IVSS_WsLibrary.h"

#pragma comment(lib,"vss_ws.lib")

#include "IVSS_DmLibrary.h"

#pragma comment(lib,"vss_dm.lib")

#include "IVSS_MapLibrary.h"

#pragma comment(lib,"vss_map.lib")

#include "IVSS_GuiLibrary.h"

#pragma comment(lib, "vss_gui.lib")

#include "IVSS_CarInfoLibrary.h"

#pragma comment(lib,"vss_carinfo.lib")

#ifdef _UNICODE

#if defined _M_IX86

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

#elif defined _M_IA64

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")

#elif defined _M_X64

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")

#else

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

#endif

#endif

所以在MainFrm.cpp里不用

#include "CtestDlg.h

在编译的时候,先生成个部分的,

最后编译整个方案。

注:要使菜单不是灰色可点的,必须有与之相对应的函数,而且是在MainFram.cpp里面。而且还要

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

ON_WM_CREATE()

ON_COMMAND(ID_DB_CONNECT, &CMainFrame::OnDbConnect)

ON_COMMAND(ID_MIF_IMPORT, &CMainFrame::OnMifImport)

ON_COMMAND(ID_MAP_ZOOMIN, &CMainFrame::OnMapZoomin)

ON_COMMAND(ID_MAP_ZOOMOUT, &CMainFrame::OnMapZoomout)

ON_COMMAND(ID_MAP_SCROLL, &CMainFrame::OnMapScroll)

ON_COMMAND(ID_MENU_GUI, &CMainFrame::OnMenuGui)

END_MESSAGE_MAP()

待续.....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: