vc/c++
文章平均质量分 58
jmxiaocai
彩虹天堂
展开
-
char tchar wchar_t WCHAR LPCTSTR LPCWSTR
1.unicode环境下字符转换问题代码:char szChar[20]; sprintf_s(szChar,"char is %d",wParam); MessageBox(hwnd,szChar,"char_test",0);报错:不能将参数 2 从“char [20]”转换为“LPCWSTR”解决办法:要么 char szChar[20]转载 2011-11-14 23:20:08 · 815 阅读 · 0 评论 -
sqlite数据库支持中文路径问题
char *unicodeToUtf8(const WCHAR *zWideFilename){ int nByte; char *zFilename; nByte = WideCharToMultiByte(CP_UTF8, 0, zWideFilename, -1, 0, 0, 0, 0); zFilename = (char*)malloc( nByte ); if( z转载 2011-12-29 11:14:39 · 990 阅读 · 0 评论 -
vc++ 利用ON_WM_COPYDATA() 接收外部消息
BOOL CGps_RecordDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CString strReadMsg((LPCSTR)(pCopyDataStruct->lpData)); AfxMessageBox(strReadMsg);转载 2012-02-04 11:32:30 · 3170 阅读 · 0 评论 -
vc++ 下载远程图片
char m_URL[] = "http://www.baidu.com/img/logo.gif";CString strServer,strObject;CString szHeaders;INTERNET_PORT nPort;CInternetSession session("My Sesssion");CHttpConnection * pServer = NUL转载 2012-02-07 09:52:15 · 1908 阅读 · 0 评论 -
解决Visual Studio 2005“当前不会命中断点。源代码与原始版本不同”
1.把出问题的文件内容copy出来,然后删除此文件, 2.编译(这里一定要编译!我试过不编译是不行的),当然肯定是不通过的。 3.添加新项,加一个新的文件,名称起刚才删除文件的名字,再把刚才的内容copy进来(这里等于是重新创建了一个同样的文件),再编译,肯定通过的了。 4.这时候执行出来的程序就是可以命中断点了!转载 2012-02-08 00:09:25 · 591 阅读 · 0 评论 -
文件读写和注册表读写
文件读写和注册表读写添加如下菜单项目:响应代码:一、 文件读写void CFileView::OnFileWrite(){ // TODO: 在此添加命令处理程序代码 //读写方式虽然是成对提供给程序员的,但是并不要求对应使用,文件的操作是对文件本身的操作,不关心文件的产生 //方法一:C语言函数 //(1转载 2012-02-10 17:17:38 · 603 阅读 · 0 评论 -
VC++ MFC 静态与动态dll
什么是DLL? DLL指的是动态链接库(Dynamic Link Library),它是一个可以被多个应用程序(甚至是不同语言编写的应用程序)同时调用的可执行二进制文件,是一个可共享的库。DLL是建立在客户/服务器通信的概念上,包含若干函数、类或资源的库文件,函数和数据被存储在一个DLL(服务器)上并由一个或多个客户导出而使用,这些客户可以是应用程序或者是其它的DLL。 在下面我们将通转载 2012-02-21 11:41:06 · 1015 阅读 · 0 评论 -
使用VC连接Access数据库的两种方法
以前的时候用VC写了两种连接Access数据库的方法,为了方便以后查找把这两种方法做一下简单的介绍。Windows平台的数据接口标准有ODBC、OLE DB、ADO和Borland的BDE接口,ODBC(Open DataBase Connectivity)只能用于访问关系型数据库,为了访问非关系型数据微软设计了OLE DB接口并在此基础上推出了ADO(ActiveX Data Objects)。转载 2012-03-06 10:40:42 · 883 阅读 · 0 评论 -
五种vc++数据库访问技术的比较
在当今流行的分布式开发环境下,VC++6.0在数据库开发方面有较强的优势,要学会在不同的场合选用不同的技术,本文就五种VC++数据库开发技术进行比较说明。从功能简单的数据库(如Jet Engine)到复杂的大型数据库系统(如oracle),VC++6.0都提供了一些编程接口。本文主要介绍以下五种:1.ODBC API;2.MFC ODBC类;3.MFC DAO类;(数据访问对象转载 2012-03-06 11:28:22 · 2198 阅读 · 0 评论 -
基于ADO的VC++数据库操作类实现
预先操作: 【1】在stdafx.h中添加 #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 【2】在主进程的InitInstance()中添加 if(!AfxOleInit()) {转载 2012-03-07 17:05:23 · 805 阅读 · 0 评论 -
c#进程间通信-接收消息
/// /// 接收消息 /// /// 参数 protected override void DefWndProc(ref Message m) { try { if (m.Msg == WM_COPYDATA)原创 2012-03-08 17:22:09 · 1117 阅读 · 0 评论 -
VC SQLite 中文转换
//---------------编码gbk 转utf-8解决中文乱码-------------------string GBKToUTF8(std::string& strGBK){ string strOutUTF8 = ""; wchar_t * str1; int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1,转载 2012-03-12 21:41:58 · 1559 阅读 · 0 评论 -
vc 遍历文件夹,删除文件及文件夹!
//删除指定文件及文件夹void CdelfileDlg::RecursiveDelete(CString szPath){ CFileFind filefind; CString path = szPath; if(path.Right(1) != "\\")//目录的最右边需要“\”字符 path += "\\"; path += "*.*"; BOOL res = fil转载 2012-03-31 23:16:32 · 886 阅读 · 0 评论 -
如何学才能迅速掌握C++?
舍弃浮躁, 50条重要的C++学习建议1.把C++当成一门新的语言学习(和C没啥关系!真的);2.看《Thinking In C++》,不要看《C++变成死相》(C++编程思想,翻译的非常差);3.看《The C++ Programming Language》(这本东西有影印板的)和《Inside The C++ Object Model》 ,不要因为他们很难而 我们自己是初学者所以就转载 2012-03-19 21:50:44 · 954 阅读 · 0 评论 -
Unicode Cstring转char互转
//cstring 转 void ConvertCStringToCharArray(CString &str,char *szContent){#ifdef UNICODE int nlen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL); WideCharToMultiByte(CP_ACP, 0, str转载 2012-04-09 11:13:58 · 1052 阅读 · 0 评论 -
VC++ INI文件修改,读取键值
WINAPI提供了相应的函数:1. 修改键值 WritePrivateProfileStringW( __in_opt LPCWSTR lpAppName, __in_opt LPCWSTR lpKeyName, __in_opt LPCWSTR lpString, __in_opt LPCWSTR lpFileName );列原创 2012-04-12 22:14:39 · 1730 阅读 · 0 评论 -
vc 屏蔽esc键和回车键
BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE) return TRUE; if(pMsg->message==WM_KEYDOWN && pMsg->wP转载 2012-05-29 17:13:57 · 1420 阅读 · 1 评论 -
VC++中计时器timer的运用
1、MFC中的计时原理:当你需要每隔一段时间执行一件事的的时候就需要使用SetTimer()函数了。 让我们先来看看SetTimer函数的原型: UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))当使用SetTimer函数的时候,就会生转载 2012-02-02 09:46:24 · 5751 阅读 · 0 评论 -
memset函数详细说明
1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar()转载 2012-02-02 09:39:32 · 450 阅读 · 0 评论 -
c++/c 结构体定义 typedef struct 用法详解和用法小结
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n;区别就在于使用时,是否可以省去str转载 2011-12-27 14:45:24 · 1885 阅读 · 1 评论 -
CInternetSession的简单使用
1. CInternetSession的简单使用CInternetSession session;CHttpFile *file = NULL;CString strURL = " http://www.20abcd.com";CString strHtml = "”; //存放网页数据try{ file = (CHttpFile*)session.Open转载 2011-11-14 16:04:25 · 439 阅读 · 0 评论 -
MSDN中对BEGIN_MESSAGE_MAP的介绍
BEGIN_MESSAGE_MAP( theClass, baseClass)ParameterstheClassSpecifies the name of the class whose message map this is.baseClassSpecifies the name of the base class of theClass.RemarksUse th转载 2011-11-14 16:00:36 · 829 阅读 · 0 评论 -
VC 下Microsoft Speech SDK开发语音识别
1.首先开发得需要Microsoft Speech SDK的支持,以下是下载地址 http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/000/781/msdncompositedoc.xml Speech SDK 5.1 (68 MB) http://download.micro转载 2011-12-02 18:18:43 · 10715 阅读 · 2 评论 -
如何通过VC的 CHttpFile 抓取网页内容
引用地址:http://www.398588.com/Article/T9/78.aspx在点击一个按钮时开始请求你输入的地址。void CHttpFileDlg::OnButton1() { CString url; GetDlgItemText(IDC_EDIT1,url); // IDC_EDIT1 是一个输入框的名字。 char* heade转载 2011-12-02 00:11:57 · 1108 阅读 · 0 评论 -
Oracle 查询当天、当周、当月和当季度的所有记录
Oracle 字段类型为varchar2,格式要与格式化的样式匹配 当天 select * from 表名 where to_char(to_date(字段名,'yyyy-mm-dd hh24:mi:ss'),'dd')=to_char(sysdate,'dd')当周 select * from 表名 where to_char(to_date(字段名,'yyyy-mm-d转载 2011-12-17 23:38:18 · 7778 阅读 · 1 评论 -
VC++ 四步实现最小化托盘图标---音乐播放器
1.定义消息名称 #define WM_OnShowTask WM_USER+100消息ON_MESSAGE(WM_OnShowTask,OnShowTask) 2.实现最小化托盘图标方法//---------------托盘程序----------------------void CMP3PlayerDlg::OnTray() { nid.cbS原创 2011-12-10 21:45:59 · 778 阅读 · 0 评论 -
使用SkinMagic美化VC界面
目前网上SkinMagic的破解版有三种,一种是1.0的,第二种是2.01的,还有一种是2.21的。1.0版有一个比较大的Bug,在列表控件上无法显示中文。而2.21版就太复杂了,有四个不同的库,因此推荐使用2.01版。2.0b1版下载地址http://blog.vckbase.com/Files/dxm/SkinMagic221_1.rar1、SkinMagicLib.h拷贝转载 2011-12-12 14:59:14 · 773 阅读 · 0 评论 -
VC中得到当前文件夹的路径
CString GetCurPath(){ CString m_strPath; TCHAR szFull[_MAX_PATH]; TCHAR szDrive[_MAX_DRIVE]; TCHAR szDir[_MAX_DIR]; ::GetModuleFileName(NULL, szFull,转载 2011-12-11 16:05:13 · 602 阅读 · 0 评论 -
VC++ 让其他程序开机自启动
#include Windows.h>#include tchar.h>int main(void){ HKEY hKey; HKEY hNewKey; DWORD dwDisposition=0;__try { char binPath[MAX_PATH]="D:\\Program Files\\QQ\\Bin\\QQ.exe";//在这里设置你要启动转载 2011-12-12 16:56:29 · 654 阅读 · 0 评论 -
directshow CoCreateInstance false 解决方案!!!!
本人在做directshow视频播放器,在做的过程中,发现视频一直播放不了,而其他人的实例去可以播放!通过调试,发现 CoCreateInstance 一直返回false!查了网上资料,发现缺少初始化:首先,需要调用CoInitialize来作初始化,然后调用CoCreateInstance创建Filter Graph Manager CDXGraph::CDXGraph(){原创 2011-12-21 15:36:08 · 774 阅读 · 0 评论 -
消息函数SendMessage传递CString类型参数
发送方 CString str = _T ("123"); //注意变量的生存周期SendMessage(m_hwnd,WM_MSG_USER,(WPARAM)&str,0);//阻塞至返回 可以不考虑变量的生存周期PostMessage(m_hwnd,WM_MSG_USER,(WPARAM)&str,0); //发送后直接返回,必须考虑变量生存周期,防止变成野指针接收转载 2011-12-14 17:13:17 · 2145 阅读 · 1 评论 -
多线程编程——AfxBeginThread
在MFC中,我们可以用到的一个API是AfxBeginThread,它的函数声明原型如下:CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0,转载 2011-12-24 23:08:44 · 912 阅读 · 0 评论 -
SQLite在VC下的使用
一、SQLite简介SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。SQLite 支持多数SQL92标准,例如:索引、限制、触发和查看支持。支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型,支持事务。二、下载SQLiteSQLite可以到官方站点下载http:转载 2011-12-25 14:24:42 · 414 阅读 · 0 评论 -
VC 加载位图到控件
//-----加载位图到控件------------------------ CString strFile=""; //为图片路径 HBITMAP hBitmap= (HBITMAP)::LoadImage(NULL,strFile,IMAGE_BITMAP,100,100,LR_LOADFROMFILE); mThumbPic.SetBitmap(hBitma原创 2011-12-24 15:08:03 · 538 阅读 · 0 评论 -
CMarkup类处理XML文件
//----------UserInfo.xml--------------luolin1。生成UserInfo.xmlCMarkup xml;xml.SetDoc("rn");xml.AddElem("UserInfo");xml.IntoElem();xml.AddElem("UserID","luo");xml.AddElem("UserID"转载 2011-12-27 00:32:56 · 665 阅读 · 0 评论 -
tinyxml 解析XML字符串,可加载远程XML
tinyxml 轻量级XML解析器,跨平台,很不错的解析器!1:先获取远程的XML,请求远程HTTP CString m_data; CString m_result; m_http.PostContent("http://www.xxxx.com/ref.php","",m_data,m_result); ReadXmlFile(m_data); 2:使用t原创 2011-12-27 12:09:47 · 7099 阅读 · 2 评论 -
VC获取系统空闲时间
LASTINPUTINFO lpi; lpi.cbSize = sizeof(lpi); GetLastInputInfo(&lpi); int iTime = (GetTickCount() - lpi.dwTime)/1000;//得到秒数转载 2012-05-29 17:21:12 · 1269 阅读 · 0 评论