![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 55
w_乐天
有问题请在博客下留言,私信很少看!
展开
-
CString,string,char*之间的转换
这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差。string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的。所以熟练掌握三者之间的转换十分必要。以下我用简单的图示指出三者之间的关系,并以标号对应转换的方法。转载 2017-07-20 17:35:42 · 324 阅读 · 0 评论 -
MFC从指定路径下打开一个文件夹
项目中需要在在指定路径下导入一个目录,通过查找MSDN找到可以使用BROWSEINFO结构体来控制打开操作,该结构体解析如下:typedef struct _browseinfo { HWND hwndOwner; // 父窗口句柄 LPCITEMIDLIST pidlRoot; // 要显示的文件目录对话框的根(Root) LPT原创 2018-03-30 17:42:07 · 5607 阅读 · 0 评论 -
在VS C++中调试DLL工程的方法
在做项目过程中,需要做一些DLL提供接口,方便调用的,但是DLL工程不能直接运行,需要其他调用才可以,懂的调试DLL是在做项目中学到,贴出来供大家学习。一般VS版本不一样,可能会有点小差异,但是大体的意思是一致,如下是步骤:1、找到要调试的DLL项目,将要调试的DLL工程设置为调试启动项目;然后选择DLL项目,点击右键,选择Properties(属性),打开属性页设置页面。2、在Propertie...转载 2018-04-12 16:51:31 · 7981 阅读 · 0 评论 -
MFC多文档中修改Title
多文档工程中修改标题不同于对话框中,可在CMainFrame::PreCreateWindow中进行设置,BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CMDIFrameWndEx::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 // CREATES...原创 2018-04-18 15:06:33 · 797 阅读 · 0 评论 -
C++调试DLL库注意事项
正常情况下将两个工程添加到一个解决方案中,一个是生成DLL库的工程,一个负责调用如下图所示1 静态调用静态调用时需要导出DLL库中的函数#ifndef __SM7_DLL_H__#define __SM7_DLL_H__extern "C"{ int DECLSPEC_EXPORT Sm_Init(Tcl_Interp* interp);}#endif然后在调用文件中加载lib库#i...原创 2018-04-13 11:07:46 · 425 阅读 · 0 评论 -
win7下VS2010中MFC多文档程序最小化通过任务栏恢复时菜单栏移位的问题解决
本文转自: http://www.linkobj.com/?id=16在win7下VS2010中编写的MFC多文档应用程序打开多个标签窗口后最小化时再通过任务栏中点击标签页恢复窗口显示时出现菜单栏移位问题,解决办法如下: 1.禁用任务栏交互:在CXXApp::InitInstance中调用 EnableTaskbarInteraction(FALSE),注意必须在主窗口中...转载 2018-08-14 17:03:52 · 454 阅读 · 0 评论 -
VC开发屏蔽系统热键F10
项目中开发的一个多文档程序中用到了快键键F10,发现当按F10快键键时,软件焦点会跳到菜单栏上面,网上查到许多的资料都讲的不太准确,下面介绍一种最简单的屏蔽方法,不需要去注册注销热键消息,1、在CMainFrm添加虚函数PreTranslateMessage。2、在虚函数中添加对系统热键VK_F10的消息进行屏蔽。代码如下:virtual BOOL PreTranslateMes...原创 2019-01-08 11:12:22 · 699 阅读 · 0 评论 -
标准C++ string处理增强函数
//标准C++ string 去除首尾空白字符 2012-8-12 static inline void stringTrim(string &str) { //去除左侧空白符 for (std::string::iterator iter = str.begin(); iter != str.end(); ++iter) { ...转载 2019-03-07 18:17:14 · 272 阅读 · 0 评论 -
在C++类中声明C#全局变量
在C++类中声明C#全局变量需要用到关键字gcroot,如下例中调用了命名空间和类名均为USB7816的C#DLL程序。#using "USB7816.dll"class CUSB7816Manager{public: CUSB7816Manager(); ~CUSB7816Manager();public: gcroot<USB7816::USB7816^> pUSB...原创 2018-03-06 11:08:35 · 1545 阅读 · 0 评论 -
C#下System::String转换成C++下string
最近开发的C++项目中需要调用外部C#写的DLL驱动,网上有许多教程,可参考我前面转载的一篇blog。程序调用成功后需要进行数据的转换,通过查找MSDN文档找到可调用Marshal类来实现。附列,// convert_system_string.cpp // compile with: /clr #include <string> #include <iostream...原创 2018-02-11 14:38:54 · 6713 阅读 · 1 评论 -
MFC文档打开流程
打开文件的步骤如下:弹出打开文件对话框 -> 获取选择的文件,并将文件显示在视图中。 我们程序中经常需要定制的操作如下:1. 定制弹出的文件对话框,例如需要修改打开文件的类型或扩展名2. 定制文件显示的行为3. 定制文件打开后的行为 1. CWinApp::OnFileOpen它是ID_FILE_OPEN消息的处理函数,在内部调用C转载 2017-09-15 15:11:16 · 830 阅读 · 0 评论 -
CRichEditDoc下保存文档出现\rtf1\ansi\ansicpg936\deff0的解决方法
使用CFile对象在CRichEdit模块中保存文件,结果每次保存的文件都会变为RTF格式,在文档中会加上一串 \rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fswiss\fcharset0 Arial;的代码,找了许久都没找到在哪修改保存文档的格式,最终在Serialize(CArchive& ar)函数原创 2017-09-20 09:26:46 · 3684 阅读 · 0 评论 -
Const修饰函数的作用
const修饰函数在类中将成员函数修饰为const表明在该函数体内,不能修改对象的数据成员而且不能调用非const函数。为什么不能调用非const函数?因为非const函数可能修改数据成员,const成员函数是不能修改数据成员的,所以在const成员函数内只能调用const函数。[cpp] view plain copy#include转载 2017-09-22 16:34:13 · 3044 阅读 · 0 评论 -
MFC问题集
1、MFC多文档程序中如何默认不打开新建的文档?在xxxApp.cpp文件中的InitInstance()函数中添加下面这个语句 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; // 禁止自动创建空白子窗体原创 2017-10-11 16:49:48 · 285 阅读 · 0 评论 -
vs2010设置CListBox字体颜色
VS2010中使用多文档模式动态创建CListBox模块输出结果,为了方便改变每一行的字体颜色,参考了CColorListBox类的封装,在添加了virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);重载函数后发现该函数并没有被调用,查其原因是因为在创建输出模块时没有添加 LBS_OWNERDRAWVARIABLE | LBS_HASST原创 2017-11-01 15:31:47 · 3081 阅读 · 0 评论 -
Bytes2HexStr与hexStr2Bytes
/** * bytes字符串转换为Byte值 * @param String src Byte字符串,每个Byte之间没有分隔符 * @return byte[] */ #include using namespace std;static BYTE* hexStr2Bytes(String src)原创 2017-06-20 16:06:33 · 15471 阅读 · 0 评论 -
VC2010在CMFCToolBar工具栏中加入组合框
如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的:To add a combo box button to a toolbar, follow these steps:1. Reserve a dummy resource ID for the button in the parent toolbar resource.2. Con转载 2018-02-02 15:12:54 · 820 阅读 · 0 评论 -
C++调用C# DLL
本文转自:http://blog.csdn.net/jiang1986829/article/details/48541921由于C#编绎出来的DLL不是计算机所能直接识别的二进制指令码,需要CLS进行再解释,说到这,我想有些朋友应该知道C#项目需要引用C++编写的DLL时,可以直接引用DLLMPORT来实现调用,而反向的话,C++项目却不能简单靠引用来使用C#编写的DLL。由于C++项目转载 2018-02-11 14:33:13 · 15808 阅读 · 1 评论 -
sqlite回调函数CallBack
最近项目上使用到Sqlite数据库,在进行数据库查询时使用它的回调函数,发现不知道它应该怎么将数据返回。下面记录回调函数的使用:int CSqlite::BackCall(void *data, int nColumn, char **colValues, char **colNames) //回调函数{CSqlite *pT =(CSqlite*)data;pT->column ...原创 2013-06-05 21:34:13 · 5035 阅读 · 0 评论