![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vc++
zhang11wu4
计算机硕士,专业:计算机应用技术,研究方向:图像图像,重点研究图像分割,包括单目标和多目标的自动分割,图像清晰化,目标检测等。QQ:46454279,仅限技术交流,其他免加.
展开
-
[转]C语言math.h库函数中atan与atan2的区别
今天做图像旋转练习的时候,要根据鼠标的移动轨迹来确定转过的角度,于是就很自然的想到通过三个点来确定这个转过的角度:图像的中心,鼠标按下的点,鼠标拖到的点。想到使用斜率来计算角度,于是联想到数学公式中的arctan反正切函数,通过搜索得知在math.h函数库中有2个函数:atan与atan2都可以求到角度,我最初使用的是atan函数,可是在使用的过程中,出现了很大的问题。1.atan()接受转载 2015-10-28 11:51:54 · 3769 阅读 · 0 评论 -
读当前打开IE的URL
// test2Dlg.cpp : implementation file//#include "stdafx.h"#include "test2.h"#include "test2Dlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __F转载 2012-03-20 21:08:16 · 586 阅读 · 0 评论 -
C++ 实现动态定义三维内的数组
//动态定义一维数组、二维数组、三维数组#include#includeusing namespace std ;int main(){int hight , row , col ;register int i , j , k ;srand((unsigned)time(NULL)) ;coutcin>>row ;//动态定义一维数组int *p转载 2012-02-17 15:34:54 · 1732 阅读 · 1 评论 -
MFC防止进程重复打开
在APP类的InitInstance()的最前面加入以下代码,建立互斥区,可防止进程的重复启动。 BOOL CReadOracleDBApp::InitInstance(){ HANDLE hObject = CreateMutex(NULL,FALSE,_T("CReadOracleDBApp")); if(GetLastError() == ERROR_ALREADY_EXI转载 2011-12-25 11:12:19 · 3789 阅读 · 0 评论 -
mfc 获得应用系统运行时的绝对路径
今天测试程序时出现奇怪现象,当不运行filedlg选择文件,程序一切正常,但一运行文件框,并选择文件,程序就会出错.通过查找错误,原因出在不能打开相对目录下的文件,但不运行文件框就不出错。后把相对目录改为绝对目录,就可打开文件,不报错。经过分析,只要不打开文件框,选择文件,相对目录就可正常使用,反之,相对目录就出错,怀疑mfc把选择文件时的绝对目录暂时定为当前目录,所以会出错。于时,把所有的相对路转载 2011-12-25 10:58:28 · 758 阅读 · 0 评论 -
精确计时器
//.h #pragma once#include #include class CTimer{public: CTimer(void); ~CTimer(void);private: LARGE_INTEGER m_Frequency; LARGE_INTEGER m_StartCount; public: void St原创 2011-12-19 15:13:36 · 715 阅读 · 0 评论 -
创建线程和通过窗口标题找到窗口句柄
void LogManage(void){ STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &pi, sizeof(pi) ); ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); si.dwFlags =STARTF_USESHOWWINDOW; si.wSh原创 2011-12-16 19:14:47 · 1343 阅读 · 0 评论 -
远程访问oracle数据库
下载oracle客户端,net服务名与主机的数据库相同,主机名就是主机的ip,记着没试下主机的监听程序是否打开(在命令行下远行lsnrctl start)。本机连接字符串用strConn.Format(_T("Provider=OraOLEDB.Oracle;Password=%s;User ID=%s;Data Source=%s;Persist Security Info=true;"),m_原创 2011-12-16 19:01:18 · 761 阅读 · 0 评论 -
vs2005MFC用ADO访问MySQL数据库
1.下载mysql数据库.(mysql-5.1.28-rc-win32),安装,在安装过程选择“complete”,“develop”2.下载与mysql数据库版本相同的odbc(mysql-connector-odbc-noinstall-5.1.8-win32),两者版本必须相同,否则会报错。3.可以下载MySql-Front工具,可视化对MySql操作。3.打开MFC程序,在st原创 2011-10-21 16:56:06 · 3052 阅读 · 0 评论 -
listctrl作为数据库查询结果显示的应用
1.#import "c:\Program Files (x86)\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","EndOfFile")2.listctrl设置为report,基本步骤就是:(1)插入并设置属性: m_List.InsertColumn(0,&column);//设置第一列 (2原创 2011-09-04 10:39:39 · 2729 阅读 · 0 评论 -
CStdioFile的WriteString 不能写汉字或英文的解决办法
.h中加:#include .cpp的函数中加:setlocale(LC_CTYPE,"chs");原创 2011-09-02 12:50:41 · 2918 阅读 · 6 评论 -
工程中添加xml类出现结构重定义解决办法
就把XmlNode.h中的#import "msxml3.dll"改成#import "msxml6.dll"原创 2011-08-25 13:00:43 · 790 阅读 · 0 评论 -
简单的ListBox
实现功能,通过点上移和下移,实现listbox中的项上移和下移, 自动到头和到尾判断,使上移和下移按钮失效。无论怎么移动,能正确返回数据源数组的序号。由三个控件组成:m_List1、m_bt1(上移)、m_bt2(下移),变量定义: CStringArray aField; //存放字段名称 int *pList; //应为m_原创 2011-08-05 17:58:36 · 766 阅读 · 0 评论 -
CStringArray和AfxExtraSubString()结合做的一个字符串分割函数
void Ctest11View::SplitStrToArr(CString str,TCHAR chSep,CStringArray *arr){ CString strTmp = str; int nSepCount=strTmp.Replace(chSep,'a');//得到分割符的数量 CString strGet=_T(""); int i = 0;原创 2011-08-02 11:40:49 · 793 阅读 · 0 评论 -
控制台程序下文件夹文件遍历
#include #include #include #define LEN 1024vector DirectoryList(LPCSTR Path/*,vector &strFileNames*/){vector strFileNames;WIN32_FIND_DATA FindData;HANDLE hError;int FileCount = 0;转载 2012-07-02 14:45:51 · 1347 阅读 · 0 评论 -
主窗口和子窗口最大化
1.主窗口最大化:BOOL CtstApp::InitInstance()中把 //pMainFrame->ShowWindow(m_nCmdShow);改成 pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);2.子窗口最大化:重载CChildFrame中的ActivateFrame()函数void CChildFrame::ActivateFrame(原创 2011-01-25 15:46:00 · 662 阅读 · 0 评论 -
读网页数据出乱码解决办法及读汉字乱码解决
一、//就是把网页的utf-8改成GBKvoid CCCBGridCtrlTestView::ConvertUtf8ToGBK(CString& strUtf8){ int len=MultiByteToWideChar(CP_UTF8, 0, (LPSTR)(LPCTSTR)strUtf8, -1, NULL,0); unsigned short * wszGBK = n原创 2011-08-03 13:01:07 · 1595 阅读 · 0 评论 -
调试方法
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……对学习编程者的忠告:眼过千遍不如手过一遍!书看千行不如手敲一行!手敲千行不如单步一行!单步源代码千行不如单步对应汇编一行!单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回转载 2015-08-28 09:41:17 · 619 阅读 · 0 评论 -
C#调用c++的dll,结构体数组作为引用参数的传递方式
1.C#代码:(1) LEAK_RECT[] leak_rects = new LEAK_RECT[20]; int leak_num=0; //画框最好还是漏水用红框,裂缝用绿框,与我生成的文件保持一致 byte bDetect = Leak_Crack_Detect(m_FileName原创 2014-04-07 16:36:58 · 8226 阅读 · 1 评论 -
[转]openmp的一点使用经验
最近在看多核编程。简单来说,由于现在电脑CPU一般都有两个核,4核与8核的CPU也逐渐走入了寻常百姓家,传统的单线程编程方式难以发挥多核CPU的强大功能,于是多核编程应运而生。按照我的理解,多核编程可以认为是对多线程编程做了一定程度的抽象,提供一些简单的API,使得用户不必花费太多精力来了解多线程的底层知识,从而提高编程效率。这两天关注的多核编程的工具包括openMP和TBB。按照目前网上的讨论,转载 2014-01-18 15:32:59 · 942 阅读 · 0 评论 -
堆和栈的区别
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2013-12-17 10:38:37 · 965 阅读 · 0 评论 -
DrawDIBDraw显示图像颠倒的解决方法
http://bbs.csdn.net/topics/390168489原创 2013-10-25 11:32:20 · 6503 阅读 · 3 评论 -
dialog捕获不到shift快捷键问题解决
1.在dialog上放一个图片按件,用dialog的onkeyup直接进行快捷键捕获,会出现捕获不到的问题,原因是dialog上有控件,而onkeyup针对的dialog,所以无法捕获。解决方法如下:(1)在pretranslateMessage中进行捕获,因为此函数是用来处理PostMessage和键盘/鼠标发出的消息;(2)在新控件中加入消息处理,并在响应函数中进行消息处理。2.P原创 2013-10-12 17:02:55 · 995 阅读 · 0 评论 -
c++出错问题解析
1.无法解析外部符号 (1).h和.cpp文件没有加入到工程中; (2).只定义了函数,没有进行实现;原创 2012-05-18 16:09:34 · 622 阅读 · 0 评论 -
关于HDC CDC 兼容DC
HDC是句柄,CDC是MFC封装的windows设备相关的一个 类,clientDC是CDC的一个衍生类,产生于对应windows客户区的对象。pDC是类指针,HDC是windows句柄,通过pDC获得 hDC hDC=pDC->getsafeDC(),通过hdc获得pDC,CDC *pDC=new CDC();pDC->attch(hdc); HDC是WINDOWS的一种数据类转载 2012-03-05 17:06:31 · 1904 阅读 · 0 评论 -
CStdioFile类
CStdioFile类的声明保存再afx.h头文件中。CStdioFile类继承自CFile类,CStdioFile对象表示一个用运行时的函数fopen打开的c运行时的流式文件。流式文件是被缓冲的,而且可以以文本方式(默认)或者二进制方式打开。CStdioFile类不支持CFile类中的Duplicate、LockRange、UnlockRange函数,如果你使用了,会得到CNotSupp转载 2011-12-27 09:22:08 · 1647 阅读 · 0 评论 -
颜色按钮、字体下拉框、字号下拉框及使用说明
以下涉及到的.h和.cpp文件在金山快盘的"我的资料\MFC\颜色按钮字体字号及说明 "中1.颜色按钮/*1.将ColorButton/ColorPopup的.h和.cpp文件复制到工程目录下,添加到类目录 *2.在对话框中添加button,并添加变量CColorButton m_btnFontClr; *3.在OnInitDialog()中初始化button显示的颜色 m_bt原创 2011-12-26 22:01:20 · 2286 阅读 · 0 评论 -
mfc工程拷贝到另一台电脑,提示“无法启动应用程序,请重装系统”错误
解决办法: 项目属性页,项目默认值->MFC的使用,将“在共享DLL中使用MFC”,改为"在静态库中使用MFC"。原因:1."Choosing Use MFC In A Shared DLL minimizes your application's executable file size by allowing MFC to be accessed f原创 2011-11-11 09:09:29 · 2179 阅读 · 0 评论 -
Unicode下用CRegKey类来操作注册表
用CRegKey类来操作注册表是非常方便的。CRegKey类并不是一个MFC类,而是一个ATL类,所以在使用的时候不要忘记在StdAfx.h头文件中加入#include 。 // 获取注册表中整数值 CRegKey rk; DWORD dwValue; CString strTemp;转载 2011-09-07 16:45:20 · 1108 阅读 · 0 评论 -
Unicode下CString 到 char*转换
CSthing strTmp(_T("深圳"));char * pChar = (LPSTR)(LPCTSTR) strTmp;原创 2011-08-24 14:42:38 · 430 阅读 · 0 评论 -
把txt文件保存了表格形式并存放到BMP文件
最主要是设置好表格显示页和DC和关系,之间用页边距来分开表格和DC的大小,表格大小是DC的大小减去2倍页边距的大小,这样才会有一个边,表格线不会沿着DC的边界画,看起来好看些。CRect 和DC都是以坐标形式表示区域。原创 2011-08-02 10:55:46 · 907 阅读 · 0 评论 -
VC6.0在Release版本下如何调试——转载
转载自http://blog.sina.com.cn/s/blog_4a2f7ae80100dv66.html 首先必须明确的是,什么是Release版程序,什么是Debug版程序 Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。原创 2011-05-21 15:49:00 · 773 阅读 · 0 评论 -
c++中mfc写文件 把信息写入文件不覆盖原来的内容问题解决
悬赏分:20 | 解决时间:2009-3-16 12:54 |提问者:hangdianhanxiaCFile file; file.Open( "d://mytxt//myfile.txt", CFile::modeCreate|CFile::modeWrite ); CString str("Sex:male"); //GetDlgItem(IDC_RADIO原创 2011-01-22 17:39:00 · 7462 阅读 · 0 评论 -
Unicode下Cstring to char*
CString P_Cstring= _T("我的字符串");//需要被转化的Cstringint nLength = P_Cstring.GetLength();int nBytes = WideCharToMultiByte(CP_ACP,0,P_Cstring,nLength,NULL,0,NULL,NULL);char* P_char= new char[ nBytes];转载 2011-08-16 16:03:29 · 575 阅读 · 0 评论 -
txt不保存为图片的原因,是创建dc时宽度值为负值,dc建立失败
txt不保存为图片的原因,是创建dc时宽度值为负值,dc建立失败原创 2011-08-01 16:07:23 · 774 阅读 · 0 评论 -
在子窗口显示图片
void CtstView::OnDraw(CDC* pDC){pDoc = GetDocument(); ASSERT_VALID(pDoc);if (!pDoc) // return; // TODO: add draw code for native data here CPaintDC dc(this); CRect rect;原创 2011-01-25 15:42:00 · 770 阅读 · 0 评论 -
多线程的使用
(1).h文件声明线程调用函数(函数声明在类外): … UINT ThreadFunc(LPVOIDlpParam);//线程调用函数class CDisplayDlg : publicCDialog{ DECLARE_DYNAMIC(CDisplayDlg)…(2).cpp文件中,实现线程调用函数:UINT ThreadFunc(原创 2012-08-22 09:12:12 · 935 阅读 · 0 评论 -
vs2008 release下调试状态设置
今天在release下调试程序,函数内部vector的内容显示正常,但一到外部看到的内容就是乱码,以为是程序错了,改来改去,原来是在release下调试的原因,根据以下的提示进行了修改,程序信息就正确了,切记!这是一个老生常谈的话题,但还是有时候会漏洞一些设置。总结一些,总共需要三个地方设置,分别是1)c\c++-> General->Debug Information转载 2012-07-02 11:44:18 · 2079 阅读 · 0 评论 -
指针越界处理办法
现象: 1 程序出现异常 异常的现象有很多,如:代码突然跑到不相干的地方去执行,访问异常,正常的变量操作也报错... 原因:代码段紊乱,this指针被改变,指针指向的数据被改变 2 程序按逻辑执行,但数据错误 如:变量内容突然消失 原因:变量所在空间被其它操作误删除等 3 其它莫名其妙的错误 原因: 越界的基本比较原因,如 1 写越界: 向10个字节的数组写入了20转载 2012-03-19 22:43:26 · 10876 阅读 · 0 评论 -
判断文件是否存在和创建文件
BOOL CreateReadFile(CString szInsertFile){ CStdioFile file; CFileStatus fileStatus; CFileException e; if(!file.GetStatus(szInsertFile,fileStatus)) //不存在,则创建 { i原创 2011-12-16 19:12:50 · 594 阅读 · 0 评论