android 调用了不少c++生成的.so库。有时怀疑库出了问题。android方面调用的库,调试基本调试不了。所以就用vs2008 创建对话框MFC应用程序调试c++代码。以前也有以调试,久了又快忘了。这次就记录一下。我不是专业c++,所以容易忘记。

1、创建MFC应用程序

2、选择对话框

下一步,然后看到这个界面

接下来直接下一步,下一步,或者直接完成即可。

3、项目结构,找对打对话框

打开之后如下图,下图拖了一个编辑框在哪里了

5、拷贝c++代码到项目

找到写对话框逻辑代码.cpp的位置。

在对话框代码的路径下,最好建一个文件夹,放你需要调试代码。

然后在项目中添加,现有项。把刚刚建文件夹的代码全部添加进去即可。如果这个文件夹有子目录,也陆续添加进去。

6、右键生成时候出现编译头问题

在.cpp文件中, 添加到“stdafx.h” 一定要在最前面。

在解决方案资源管理器视图下选中某些导致错误的文件,浏览到头文件.cpp那,右键属性---C/C++-----预编译头-----选择 不使用预编译头 即可。

这样你的mfc调试已经弄好了。

7、写代码啦

在引用你添加调试c++的代码路径,因为你是放在你代码下,新建的文件下代码,包含进去即可。

#include "src/CoordManage.h"

全局变量需要.h头文件声明变量的。

void CEncryptERMFCDlg::OnBnClickedOk()
{CSystemManage *systemManage = new CSystemManage;const std::string &filePath = "F:\\erer.er";systemManage->LoadformFile(filePath);if (systemManage->isEncpt()){std::string strKey = "123456";systemManage->unEncpt(strKey);}OnOK();
}

c++跟java还是有一定区别的。

实例化类是这样

CCSystemManage *systemManage = new CSystemManage;

然后使用这个类里面的函数是这样的,不是用.就可以,使用->来使用的。

systemManage->LoadformFile(filePath);

8、附上两个对话框调试代码的头文件以及.cpp文件

// ToolPosionTestDlg.h : 头文件
//
#pragma once#include "ToolPosition/PositionOffset.h"
#include "ToolPosition/DefineStructure.h"
#include "ToolPosition/PositionOffset.h"
#include "afxwin.h"
#include "afxcmn.h"
//#include "ToolPosition/PositionOffset_1Pt1Line1Angle.h"// CToolPosionTestDlg 对话框
class CToolPosionTestDlg : public CDialog
{
// 构造
public:CToolPosionTestDlg(CWnd* pParent = NULL);   // 标准构造函数// 对话框数据enum { IDD = IDD_TOOLPOSIONTEST_DIALOG };protected:virtual void DoDataExchange(CDataExchange* pDX);   // DDX/DDV 支持// 实现
protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()
public:afx_msg void OnEnChangeEditInputPx1();afx_msg void OnEnChangeEditInputPx2();afx_msg void OnEnChangeEditInputPx3();afx_msg void OnEnChangeEditAngel();afx_msg void OnEnChangeEditAngelHigh();afx_msg void OnEnChangeEditDistance();afx_msg void OnEnChangeEditDistanceHigh();private:ToolCoordinate m_coordPx1;ToolCoordinate m_coordPx2;ToolAngle m_angle1;ToolDistance m_diatance1;ToolAngle m_angle2;ToolDistance m_diatance2;
public:afx_msg void OnBnClickedOk();double m_Showcoordx;double m_coodrp1x;double m_coodrp1y;double m_angle;double m_distance;double m_coodrp1z;afx_msg void OnLbnSelchangeList1();afx_msg void OnCbnSelchangeComboboxexSeclectMethod();CComboBoxEx m_ComboBoxSeclect;afx_msg void OnEnChangeEditInputPy1();afx_msg void OnEnChangeEditEditInputPy2();afx_msg void OnEnChangeEditEditInputPy3();double m_coodrp2x;double m_coodrp2y;double m_coodrp2z;afx_msg void OnBnClickedButtonTwoPointTwoLine();afx_msg void OnBnClickedButtonTwoPointLineAngle();
};
// ToolPosionTestDlg.cpp : 实现文件
//#include "stdafx.h"
#include "ToolPosionTest.h"
#include "ToolPosionTestDlg.h"
#include <string>
using namespace std;#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#include "ToolPosition/PositionOffset_1Pt1Line1Angle.h"
#include "ToolPosition/PositionOffset_2Pt2Line.h"
#include "ToolPosition/PositionOffset_2Pt1Line1Angle.h"// 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialog
{
public:CAboutDlg();// 对话框数据enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持// 实现
protected:DECLARE_MESSAGE_MAP()
};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{CDialog::DoDataExchange(pDX);
}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()// CToolPosionTestDlg 对话框CToolPosionTestDlg::CToolPosionTestDlg(CWnd* pParent /*=NULL*/): CDialog(CToolPosionTestDlg::IDD, pParent), m_coodrp1x(), m_coodrp1y(), m_angle(0), m_distance(0), m_coodrp1z(0), m_coodrp2x(0), m_coodrp2y(0), m_coodrp2z(0)
{m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}void CToolPosionTestDlg::DoDataExchange(CDataExchange* pDX)
{CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT3, m_coodrp1x);DDX_Text(pDX, IDC_EDIT2, m_coodrp1y);DDX_Text(pDX, IDC_EDIT4, m_coodrp1z);DDX_Text(pDX, IDC_EDIT5, m_angle);DDX_Text(pDX, IDC_EDIT7, m_distance);DDX_Control(pDX, IDC_COMBOBOXEX1, m_ComboBoxSeclect);DDX_Text(pDX, IDC_EDIT1, m_coodrp2x);DDX_Text(pDX, IDC_EDIT9, m_coodrp2y);DDX_Text(pDX, IDC_EDIT10, m_coodrp2z);
}BEGIN_MESSAGE_MAP(CToolPosionTestDlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAPON_EN_CHANGE(IDC_EDIT2, &CToolPosionTestDlg::OnEnChangeEditInputPx2)ON_EN_CHANGE(IDC_EDIT3, &CToolPosionTestDlg::OnEnChangeEditInputPx1)ON_EN_CHANGE(IDC_EDIT4, &CToolPosionTestDlg::OnEnChangeEditInputPx3)ON_EN_CHANGE(IDC_EDIT5, &CToolPosionTestDlg::OnEnChangeEditAngel)ON_EN_CHANGE(IDC_EDIT6, &CToolPosionTestDlg::OnEnChangeEditAngelHigh)ON_EN_CHANGE(IDC_EDIT7, &CToolPosionTestDlg::OnEnChangeEditDistance)ON_EN_CHANGE(IDC_EDIT8, &CToolPosionTestDlg::OnEnChangeEditDistanceHigh)ON_BN_CLICKED(IDOK, &CToolPosionTestDlg::OnBnClickedOk)ON_CBN_SELCHANGE(IDC_COMBOBOXEX1, &CToolPosionTestDlg::OnCbnSelchangeComboboxexSeclectMethod)ON_EN_CHANGE(IDC_EDIT1, &CToolPosionTestDlg::OnEnChangeEditInputPy1)ON_EN_CHANGE(IDC_EDIT9, &CToolPosionTestDlg::OnEnChangeEditEditInputPy2)ON_EN_CHANGE(IDC_EDIT10, &CToolPosionTestDlg::OnEnChangeEditEditInputPy3)ON_BN_CLICKED(IDC_BUTTON1, &CToolPosionTestDlg::OnBnClickedButtonTwoPointTwoLine)ON_BN_CLICKED(IDC_BUTTON2, &CToolPosionTestDlg::OnBnClickedButtonTwoPointLineAngle)
END_MESSAGE_MAP()// CToolPosionTestDlg 消息处理程序BOOL CToolPosionTestDlg::OnInitDialog()
{CDialog::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);            // 设置大图标SetIcon(m_hIcon, FALSE);        // 设置小图标// TODO: 在此添加额外的初始化代码return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}void CToolPosionTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
{if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}
}// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。void CToolPosionTestDlg::OnPaint()
{if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}
}//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CToolPosionTestDlg::OnQueryDragIcon()
{return static_cast<HCURSOR>(m_hIcon);
}void CToolPosionTestDlg::OnEnChangeEditInputPx1()
{UpdateData(TRUE);}void CToolPosionTestDlg::OnEnChangeEditInputPx2()
{   UpdateData(TRUE);
}void CToolPosionTestDlg::OnEnChangeEditInputPx3()
{UpdateData(TRUE);
}void CToolPosionTestDlg::OnEnChangeEditAngel()
{UpdateData(TRUE);
}void CToolPosionTestDlg::OnEnChangeEditAngelHigh()
{}void CToolPosionTestDlg::OnEnChangeEditDistance()
{UpdateData(TRUE);
}void CToolPosionTestDlg::OnEnChangeEditDistanceHigh()
{}void CToolPosionTestDlg::OnBnClickedOk()
{UpdateData(FALSE);m_coordPx1.dCoorx = m_coodrp1x;m_coordPx1.dCoory = m_coodrp1y;m_coordPx1.dCoorh = m_coodrp1z;m_angle1.dAngle = m_angle;m_angle1.dDHeight = 0;m_diatance1.dDistance = m_distance;m_diatance1.dDHeight = 0;CPositionOffset *positionOffset ;positionOffset = new CPositionOffset_1Pt1Line1Angle;positionOffset->SetKnownAngleAndHeight1(m_angle1);positionOffset->SetKnownDistanceAndHeight1(m_diatance1);positionOffset->SetKnownPointP1(m_coordPx1);m_coordPx1 = positionOffset->GetOffsetCoordinate();CString strResultx;strResultx.Format(_T("x:%.4f\n"), m_coordPx1.dCoorx);CString strResulty;strResulty.Format(_T("y:%.4f\n"), m_coordPx1.dCoory);CString strResultz;strResultz.Format(_T("z:%.4f\n"), m_coordPx1.dCoorh);strResultx += strResulty;strResultx += strResultz;MessageBox(strResultx,_T("程序运行结果"),MB_OK);
}void CToolPosionTestDlg::OnCbnSelchangeComboboxexSeclectMethod()
{m_ComboBoxSeclect.AddString(_T("鸡啄米"));   // 为组合框控件的列表框添加列表项“百度”   m_ComboBoxSeclect.AddString(_T("百度"));   // 在组合框控件的列表框中索引为1的位置插入列表项“新浪”   m_ComboBoxSeclect.InsertString(1, _T("新浪"));   // 默认选择第一项   m_ComboBoxSeclect.SetCurSel(0);   // 编辑框中默认显示第一项的文字“鸡啄米”   SetDlgItemText(IDC_COMBOBOXEX1, _T("鸡啄米"));
}void CToolPosionTestDlg::OnEnChangeEditInputPy1()
{UpdateData(TRUE);}void CToolPosionTestDlg::OnEnChangeEditEditInputPy2()
{
UpdateData(TRUE);}void CToolPosionTestDlg::OnEnChangeEditEditInputPy3()
{
UpdateData(TRUE);}void CToolPosionTestDlg::OnBnClickedButtonTwoPointTwoLine()
{UpdateData(FALSE);m_coordPx1.dCoorx = m_coodrp1x;m_coordPx1.dCoory = m_coodrp1y;m_coordPx1.dCoorh = m_coodrp1z;m_coordPx2.dCoorx = m_coodrp2x;m_coordPx2.dCoory = m_coodrp2y;m_coordPx2.dCoorh = m_coodrp2z;m_diatance1.dDistance = m_angle;m_diatance1.dDHeight = 0;m_diatance2.dDistance = m_distance;m_diatance2.dDHeight = 0;CPositionOffset *positionOffset ;positionOffset = new CPositionOffset_2Pt2Line;positionOffset->SetKnownDistanceAndHeight1(m_diatance1);positionOffset->SetKnownDistanceAndHeight2(m_diatance2);positionOffset->SetKnownPointP1(m_coordPx1);positionOffset->SetKnownPointP2(m_coordPx2);m_coordPx1 = positionOffset->GetOffsetCoordinate();CString strResultx;strResultx.Format(_T("x:%.4f\n"), m_coordPx1.dCoorx);CString strResulty;strResulty.Format(_T("y:%.4f\n"), m_coordPx1.dCoory);CString strResultz;strResultz.Format(_T("z:%.4f\n"), m_coordPx1.dCoorh);strResultx += strResulty;strResultx += strResultz;MessageBox(strResultx,_T("程序运行结果"),MB_OK);
}void CToolPosionTestDlg::OnBnClickedButtonTwoPointLineAngle()
{UpdateData(FALSE);m_coordPx1.dCoorx = m_coodrp1x;m_coordPx1.dCoory = m_coodrp1y;m_coordPx1.dCoorh = m_coodrp1z;m_coordPx2.dCoorx = m_coodrp2x;m_coordPx2.dCoory = m_coodrp2y;m_coordPx2.dCoorh = m_coodrp2z;m_angle1.dAngle = m_angle;m_angle1.dDHeight = 0;m_diatance1.dDistance = m_distance;m_diatance1.dDHeight = 0;CPositionOffset *positionOffset ;positionOffset = new CPositionOffset_2Pt1Line1Angle();positionOffset->SetKnownAngleAndHeight2(m_angle1);positionOffset->SetKnownDistanceAndHeight2(m_diatance1);positionOffset->SetKnownPointP1(m_coordPx1);positionOffset->SetKnownPointP2(m_coordPx2);m_coordPx1 = positionOffset->GetOffsetCoordinate();CString strResultx;strResultx.Format(_T("x:%.4f\n"), m_coordPx1.dCoorx);CString strResulty;strResulty.Format(_T("y:%.4f\n"), m_coordPx1.dCoory);CString strResultz;strResultz.Format(_T("z:%.4f\n"), m_coordPx1.dCoorh);strResultx += strResulty;strResultx += strResultz;MessageBox(strResultx,_T("程序运行结果"),MB_OK);}

方便查看计算出来数据使用这个

MessageBox(strResultx,_T("程序运行结果"),MB_OK);

c++博大精深。。。多多学习

vs2008 创建对话框MFC应用程序调试c++代码相关推荐

  1. java国际化程序创建属性文件,Java程序国际化学习代码一

    Java程序国际化初识 1.基本思路 Java程序的国际化的思路是将程序中的标签.提示等信息放在资源文件中,程序需要支持哪些国家.语言环境,就对应提供相应的资源文件.资源文件是key-value对,每 ...

  2. CodeBlacks程序调试的那些事

    一.创建工程文件 在电脑桌面创建一个文件用于保存要创建的工程,并命名为"C程序测试",如右图所示,. 二.安装CodeBlacks 双击点击如右图所示的"CodeBlac ...

  3. 【微信小程序】创建自己的小程序

    文章目录 1.关于小程序 2.环境的搭建 2.1 Python环境 2.2 小程序环境 2.2.1 申请一个微信公众平台 2.2.2 保存自己的appid 2.2.3 下载开发者工具 2.2.4 创建 ...

  4. MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应...

    MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/detail ...

  5. VS2008下用MFC 的MSComm控件编写串口程序

    可以在:http://download.csdn.net/detail/plutus_lee/4525446 下载详细文档. 首先感谢网络资源吧,作为一个自动化专业出身的,不懂串口实在让我有点无奈,本 ...

  6. vs2013我建了两个对话框 选择主对话框_VS/MFC编程教程:如何创建对话框模板和修改对话框属性...

    创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等.在本节中先 ...

  7. 【MFC】创建第一个应用程序

    00. 目录 文章目录 00. 目录 01. 概述 02. 创建应用程序 03. 程序示例 04. 附录 01. 概述 要创建MFC应用程序,您可以使用向导来自定义您的项目.您也可以从头创建应用程序. ...

  8. edit控件自动换行 mfc_VS2010/MFC编程入门:如何创建对话框模板和修改对话框属性?...

    创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等.在本节中先 ...

  9. mfc入门基础(四)对话框添加控件、创建对话框类和为对话框控件添加变量

    参考博客:VS2010/MFC编程入门之七(对话框:为对话框添加控件)-软件开发-鸡啄米 VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)-软件开发-鸡啄米 基于基础(三)中写的 ...

最新文章

  1. 《程序员代码面试指南》第五章 字符串问题 拼接所有字符串产生字典顺序最小的大写字符串...
  2. python写http文件下载器_http分片请求-python分片下载文件
  3. 教学思路SQL之预备课程学习 建库、建表、建约束、关系、部分T-sql语句
  4. LeetCode 35. 搜索插入位置(二分查找)
  5. 吴恩达深度学习2.2笔记_Improving Deep Neural Networks_优化算法
  6. HTML li标签排列有空白间隙
  7. 为何要弃 Java、Swift 于不顾,而选择 Python?
  8. [Python學習筆記] 使用xlwings 插入註解 (forked 版本)
  9. DOM、JDOM、DOM4J解析XML
  10. 克莱姆法则(Cramer's Rule)
  11. centos 5.6 x86 安装 文泉驿字体
  12. 计算机软件 题目,计算机软件论文题目
  13. 看两宋风云,搞清了四个之前对两宋历史认识错误的地方
  14. SQLServer共享锁,更新锁,排它锁,死锁,默认隔离级别
  15. C语言 一步步教你做一个带有图形界面的冒险小游戏
  16. 修改上传资源积分c币教程指导
  17. C语言判断是否可以构成三角形
  18. Appium移动自动化测试(三)--安装Android模拟器(建议直接连手机,跳过此步)
  19. EDA -- 灯开关设计
  20. Ros cartographer 搭载 landmark 保姆级操作上手教程

热门文章

  1. MaxWell抓取数据
  2. PLUTO SDR入门系列之二:PlutoSDR拆解
  3. 2016c语言模拟试卷一,2016年计算机程序员考试模拟试题及答案
  4. 数据库概念 第六版 中英文 带目录+习题答案
  5. 使用 PTC Mathcad Prime 软件绘制电源谐振Q值曲线
  6. Creating a ContextMenu in ListView
  7. soliworks motion中测量角位移
  8. fedora dnf 命令
  9. springboot集成Hutool工具类库-hutool-core
  10. Python自动化小技巧07——符号计算求方程解、二重积分