VC++
markman101
这个作者很懒,什么都没留下…
展开
-
用VS自带的工具制作 安装包(2)--调整vs2005安装包的界面语言
1.找到相对应的setup项目2.找到setup项目下的后缀名为.vdproj的文件,此文件为setup项目的配置文件3.用记事本打开vdproj,找到"LanguageId"和"UILanguageId"属性改成英文界面,则更改"LanguageId" = "3:1033""UILanguageId" = "3:1033"中文界面则:"LanguageId" = "3:2052" "UILanguageId" = "3:2052" 4.重新生成setup项目即可原创 2010-06-28 14:51:00 · 1257 阅读 · 0 评论 -
ShellExecute 函数总结
<br />1 文件定位功能实现<br /><br /> CString strPicPath; <br /> strPicPath = alarmlist->GetItemText(nItem, 3);//此时 strPicPath值为:“d://123.bmp” <br /> strPicPath="/e,/select,"+strPicPath;<br /> 方法1: ShellExecute(NULL,"open","explorer.exe",strPicPath,NULL,SW_原创 2010-10-15 15:35:00 · 788 阅读 · 0 评论 -
程序调试方法总结
<br /> <br />在应用程序开发和调试过程中,经常遇到这样的问题:由于某个变量的值被错误地改变,导致程序出错甚至crash,如果程序运行在多线程环境,或者程序逻辑非常复杂,我们想跟踪这个变量的变化将会非常困难。有没有办法能够在调试过程中使程序自动在改变变量处断点呢?这样我们就能一一查看该变量值的改变情况,从而发现到底是什么时刻进行了错误的操作。<br /> 比较常用的方法可能是用TRACE等方法在改变值的地方输出信息,但是这样就没有了堆栈等调试信息,而且对于比较大型的程序,需要添加很多调试语句转载 2010-11-08 17:58:00 · 1284 阅读 · 0 评论 -
Release 下调试代码设置 (VS2005/2008)
<br />Release 下想调试代码只需要修改一下设置:右键当前工程, 选择properties选择 All ConfigurationsC++>General->Debug Information Format->Program Database (/Zi)C++>Optimization->Optimization->Disabled (/Od)Linker->Debugging->Generate Debug Info->Yes (/DEBUG)Linker->Debugging->Generat转载 2011-01-18 13:18:00 · 731 阅读 · 0 评论 -
云台控制
<br />最近学习了云台的一些东西,比如云台的协议阿,云台的调试什么,通过这段时间努力终于把几个问题解决了,一个是对于某个厂商(A)的云台出现的pelco-p协议在波特率2400,4800,9600协议、地址码设置和球上的一致的情况下不能控制云台的转动,另外一个问题是A的云台(恒速球)不支持预置点、到达某个预置点、巡航线的功能,<br /> 对云台的开发来说最主要的是要能够结合说明书、理解协议并且实现对云台写串口数据。<br /> 基转载 2011-01-21 14:27:00 · 9426 阅读 · 2 评论 -
sln------------------unrecognized version
<br />你需要安装和创建这个sln一样版本的Visual Studio才能打开。<br />比如使用notepad打开一个sln文件,前两行的内容如下:<br />Microsoft Visual Studio Solution File, Format Version 10.00<br /># Visual Studio 2008<br />表示该sln是使用Visual Studio 2008创建的,打开它需要安装有Visual Studio 2008。转载 2011-05-13 14:58:00 · 865 阅读 · 0 评论 -
Doxygen简单经验谈。。。
Doxygen,大名鼎鼎的文档生成工具,被Boost、OpenCasCade等诸多项目作为文档生成的不二人选。人说,才华横溢往往是高深莫测,这句话放在Doxygen这里显然是不适用的。十八般武艺样样精通的Doxygen,却十分的简单易用,从头到尾看一下它随机的文档,想不会用都难。转载 2011-07-22 17:15:52 · 964 阅读 · 0 评论 -
VS2003"无法启动调试 没有正确安装调试器"的解决方法
在用VS2003做项目的时候,经常调试程序,但是有时候回出现如下问题“无法启动调试,没有正确安装调试器,请运行安装程序或修复调试器”。第一次碰到还以为是运气不好,就重新用vs2003安装程序重新修复了这个工具,可以使用了。但是运行了一段时间又出现了如上这种问题,郁闷了我很久。因为修复一下这个工具要花费很多时间的,于是从网上找了资料,把问题给解决了。 主要原因:大部分问题都是因为,mdm转载 2011-11-15 10:38:54 · 1076 阅读 · 1 评论 -
VC++ 反汇编定位程序崩溃位置
程序运行时出错 用事件查看器查看出错位置:程序源码如下:#include "stdafx.h"typedef struct def{ int i ;}DEF;int main(){ DEF* de; int j = de->i; return 0;}在程序中设置断点然后启动反汇编:查看 0X0040102B位置 就是程原创 2012-01-17 11:02:22 · 3068 阅读 · 0 评论 -
无法启动调试 没有正确安装调试器
好久没动VS2003了,最近要用VS2003进行调试,编译完进行调试的时候,VS2003提示如下信息:“无法启动调试 没有正确安装调试器 请运行安装程序安装或修复调试器”我记得以前为提升电脑速度进行优化的时候,将Machine Debug Manager服务给关闭了,想着去将该服务打开就可以了。当打开Windows计算机服务查看器以后,发现里面没有这个服务(服务查看器可以通转载 2012-03-23 21:04:29 · 5960 阅读 · 1 评论 -
Mutex的使用
使用互斥量Mutex主要将用到四个函数。下面是这些函数的原型和使用说明。第一个 CreateMutex函数功能:创建互斥量(注意与事件Event的创建函数对比)函数原型:HANDLECreateMutex( LPSECURITY_ATTRIBUTESlpMutexAttributes, BOOLbInitialOwner, LPCTSTRlpName转载 2012-06-19 17:57:37 · 1007 阅读 · 0 评论 -
Semaphore 使用
Semaphore是另一个同步问题机制,不论是Event或Mutex,其他Process在执WaitForSingleObject时,就看当时的物件是Signal或UnSignal而决定是否等待,而Semaphore也相同,但是它要变成Signal /UnSignal的状态,却有些不同,它是提供一个计数值,它允许在这个计数值之内,任何执行到WaitForSingleObject的Thr转载 2012-06-20 10:36:53 · 750 阅读 · 0 评论 -
strncpy_s
<br />#include "stdafx.h"#include <string.h>int _tmain(int argc, _TCHAR* argv[]){ int i=0; char ar1[10] = {-1}; for (;i<10;i++) { ar1[i]=-1; } const char * te="this is test strncpy_s"; strncpy_s(ar1,10,te,5); return 0;} <br原创 2010-12-02 13:35:00 · 17504 阅读 · 0 评论 -
VC中怎样修改生成的EXE文件的图标
不知道的话确实是个问题,VS中根本找不到修改的地方,综合网友们的说法,无外乎三种:1. 直接修改IDR_MAINFRAME图标,瞒天过海!2. 插入新图标,删掉IDR_MAINFRAME图标,然后将新图标的ID改为IDR_MAINFRAME,斩草除根!一劳永逸!不留后患!3. 最简单的方法,就是修改resource.h文件中图标的序号,将你想做为EXE文件图标的那个序号改到最小,如: #define IDR_MAINFRAME 128 #define IDR_转载 2010-09-29 11:08:00 · 1505 阅读 · 0 评论 -
VS 2005的一些常用操作 不断增加中....
10.6.281 恢复vs2005默认的开发环境布局方法 有时候由于误操作或者本着 探索发现的精神 结果搞得vs2005开发环境布局乱七八糟 ,想回到初始状态的布局, 方法:菜单:窗口——》重置窗口布局2 有一天忽然找不到 resource view 了 怎么办呢用快捷键: Ctrl+Shift+EView ResourceView原创 2010-06-28 16:25:00 · 850 阅读 · 0 评论 -
GetMessage()用法实例
主线程中定义:m_ThreadStop = FALSE;HANDLE hHandle = CreateThread(NULL,0,PlayVideoFile,(void*)this,0,NULL);//在子线程中PlayVideoFile 如果线程正常结将束//m_ThreadStop=true//子线程 实现创建 过滤图表 连接filter等 while (!原创 2010-04-29 08:51:00 · 3748 阅读 · 0 评论 -
opened in another editor
更改rc的打开方式为Resource Editor(Default), 然后关闭VS2008进入工程目录删除ncb文件,重新打开项目,就正常了。原创 2010-06-28 17:17:00 · 3813 阅读 · 1 评论 -
用VS自带的工具制作 安装包(1)
1:新建安装部署项目打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)此主题相关图片如下:2:安装向导关闭后打开安装向导,点击下一步,或者直接点击完成.3:开始制作安装向导完成后即可进入项目文件夹:双击"Application Filder"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.弹出 对话框 相应的*.exe 就可以创建 对应的快捷方式。这样在软件安装的同时就可以在桌面添加 程序的快捷原创 2010-06-29 16:38:00 · 177 阅读 · 0 评论 -
_T 与UNICODE
<br />VC++里面定义字符串的时候,用_T来保证兼容性。VC++支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。<br />如果将来你不打算升级到unicode,那么也不需要_T。<br />_t("hello world")<br />在ansi的环境下,它是ansi的,如果在unicode下,那么它将自动解释为双字节字符串,既unicode编码。 <br />这样做的好处,不管是ansi环境,还是unicode环境,转载 2010-07-15 14:32:00 · 832 阅读 · 0 评论 -
VS2005 中的字符集
今天在写代码时遇到这个问题:m_tab.InsertItem(0,"参数一"); //添加参数一选项卡m_tab.InsertItem(1,"参数二"); //添加参数二选项卡m_tab.InsertItem(2,"结果"); //添加结果选项卡这一段移植到VS2005 C++ 中提示: error C2664: “LONG CTabCtrl::InsertItem(int,TCITEMW *原创 2010-05-21 10:17:00 · 1768 阅读 · 0 评论 -
DoDataExchange,UpdateData
<br />对于这个函数,MSDN是这样描述的:Called by the framework to exchange and validate dialog data.大意是框架调用此函数来改写与确认对话框数据。 <br />反正我没明白这句话的意思。 <br /><br />到是看了下DoDataExchange函数里的DDX型函数,似乎明白了DoDataExchange函数的作用。最近看书的效果很明显哇。 <br /><br />按我的理解,DoDataExchange函数其实是一项数据动态绑定技术。转载 2010-06-02 11:07:00 · 811 阅读 · 0 评论 -
改变对话框的好方法
在VC++程序设计过程中经常会遇到这样的情况:执行程序的多个地方需要调用同一个对话框,但在不同的情况下希望给对话框加上不同的标题。开始我们可能会用下面的一段程序以达到这一目的:CTestDialog dlg;dlg.SetWindowText(“标题-1");dlg.DoModal();利用上述办法,我们本希望在程序不同的地方,通过设置函数SetWindowText不同的参数,以达到使同一对话框具有不同标题的目的,但这样做是行不通的。利用这种方法,当执行该段程转载 2010-06-12 13:55:00 · 135 阅读 · 0 评论 -
This file is already open in an editor
<br />今天不小心修改了“Resource.h”文件,然后点击“Resource view”时弹出对话框“The file is already open in the editor”,原因是.rc文件在右边窗口中已打开。<br />解决方法很简单:按下右上角的“关闭”按纽,将右栏中的文件关闭。<br />再次点击“Resource view”就恢复正常了。转载 2010-08-13 16:22:00 · 2913 阅读 · 0 评论 -
Call Stack技巧(调用堆栈调试)
<br />1、堆栈调试的原理<br /> 调用堆栈反映了当前断点处函数是被哪些函数按照什么顺序调用的?<br />2、堆栈调试的技巧<br /> 在“Call Stack”对话框中显示了一个调用系列,最上面的是当前函数,往下依次是调用函数的上级函数,单击这些函数名可以跳到对 应的函数中。<br />3、调用方式(VC++ 6.0)<br /> View-->Debug Window ---->Call Stack<br />4、示例图片<br />原创 2010-09-01 10:52:00 · 8890 阅读 · 0 评论 -
VC 小技巧 专题
1VC中如何拷贝已有资源(对话框、菜单等)如果你想把一个工程(A工程)中已有对话框完整拷贝到另一个工程(B工程)中,可以用下面的办法:首先在B中,“文件”-“打开”,选择A的“.rc”资源文件,A的资源就会显示在B工程的代码区里,你就可以选择所需要的资源拖到B工程中就可以了。转载 2010-09-15 22:54:00 · 758 阅读 · 0 评论 -
VC 对话框 怎么实现 鼠标拖动 变大 变小
<br />使用 WS_THICKFRAME<br /><br />ModifyStyle(0,WS_THICKFRAME);转载 2010-09-08 16:51:00 · 1138 阅读 · 0 评论 -
VC 调试错误 专题
1 LNK1181: cannot open input file“1.obj” 出错原因:在Pjoject--->Settings---->link---->input 写入需要库时在 末尾 输入一个 1 解决方法:删除 多余的 12 VC编译错误:error LNK2001: 无法解析的外部符号 __iob错误:1>libxvidcore.lib(bitstream原创 2010-09-15 22:04:00 · 3499 阅读 · 0 评论