MFC学习
firefly_liu
宇宙一小虫,三国演义,软件,编码
展开
-
开发IE Toolbar时,输入窗口不能输入中文(解决)
在最后相应windows消息传递的时候,需要处理一下:STDMETHODIMP CMyIEToolbar::TranslateAcceleratorIO(LPMSG lpMsg){ //编辑框输入中文解决方法(抄来的,没研究) int nVirtkey = (int)lpMsg->wParam; if(WM_KEYUP == lpMsg->message && VK_RETUR原创 2008-10-22 13:13:00 · 584 阅读 · 0 评论 -
VC++ 调用BCP 导出 Sqlserver 表
首先准备一条bcp语句,测试一下:EXEC master..xp_cmdshell bcp myTest.dbo.firest out d:/tmp.csv /c /t /S /U sa /P sa这句话导出myTest数据库中的firest表到物理d盘下的tmp.csv文件中,在TSQL环境下测试成功那么在VC++下呢,首先连接数据库,执行该语句,源码如下:// DBTransaction原创 2008-11-04 17:29:00 · 1118 阅读 · 7 评论 -
采用ShellExecute函数来执行BCP命令
前几天用ADO执行bcp命令,已经成功了,但是后来发现极不稳定,并非在任何机器上都能顺畅的运行,于是修改了源程序,采用ShellExecute函数直接调研bcp程序来到处导入,缺点是在运行时会弹出命令行窗口,那位大侠知道如何让他不出来,还请教教在下啊,呵呵CString _t(table);CString _db(dbname);CString _f(this->filePath);CString原创 2008-11-07 10:25:00 · 1185 阅读 · 2 评论 -
MFC _Recordset->GetFields()->GetItem(const _variant_t &index)出现未找到项目
第13行出现了烦人的错误“在对应所需名称或序数的集合中,未找到项目”试了n种办法,最后发现这么简单就解决了,呵呵,不知其所以然的坏处啊INT i; Field *field; variant_t var; _RecordsetPtr set; set.CreateInstance("ADODB.Recordset"); set->Open((_variant_t)s原创 2008-11-18 09:38:00 · 2473 阅读 · 0 评论 -
getsockopt()函数
简述: 获取一个套接口选项。 #include int PASCAL FAR getsockopt( SOCKET s, int level, int optname, char FAR* optval, int FAR* optlen); s:一个标识套接口的描述字。 level:选项定义的层次。支持的层次仅有SOL_SOCKET和IPPROTO_TCP转载 2009-02-16 13:52:00 · 2662 阅读 · 0 评论 -
Winsock 完成端口模型简介
摘自《Networking Programming for Microsoft Windows》第八章“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!从本质上说,完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I转载 2009-02-16 11:21:00 · 547 阅读 · 0 评论 -
函数WSAStartup
函数WSAStartup一、WSAStartup函数 int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData转载 2009-02-16 11:44:00 · 5743 阅读 · 0 评论 -
内存映射文件实现多进程通信
send.cpp #include #include #include using namespace std;int main(int argc,char **argv){ HANDLE hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0原创 2009-02-20 09:36:00 · 1321 阅读 · 2 评论 -
为Python创建扩展,使python能实现内存共享
在架构服务器的时候,使用了IOCP来收发数据,使用Python写解包入库程序,那么要让两个进程通信,有很多方法,这里使用了内存共享的方法python本来没有内存共享(我没有找到,也不知道是不是真的没有,但是和C++的程序共享内存,我想确实没有的吧),那么只好自己用C写个扩展,方法记录下来,以备后用 首先是扩展的*.c程序MEM.c#include "Python.h" #i原创 2009-02-25 11:15:00 · 1026 阅读 · 0 评论 -
SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问
SQL Server 阻止了对组件 xp_cmdshell 的 过程sys.xp_cmdshell 的访问执行bcp程序遇到这个错误时,执行下面的语句 ;EXEC sp_configure show advanced options, 1 --;RECONFIGURE WITH OVERRIDE --;EXEC sp_configure xp_c原创 2008-11-04 15:37:00 · 1786 阅读 · 0 评论 -
VS2008开发的MFC程序,静态连接的方法
VS2008开发的MFC程序,静态连接的方法是1、在“解决方案资源管理器”中选择项目,右击选择[属性]或在菜单上选择[项目]->[属性],打开对话框2、[配置属性]->[常规]->[MFC使用]后面选择在静态库中使用MFC3、debug方式重新生成这时把debug文件夹里的exe文件考出来就可以执行了但是同样选择release方式就不能运行,不知道为什么原创 2008-11-05 16:26:00 · 1046 阅读 · 0 评论 -
自定义MFC的文件夹浏览控件类
文件对话框属于通用对话框范畴(另外还有颜色,查找,查找替换,字体,打印等对话框)。借助MFC现成的类CFileDialog你可以轻易操作文件对话框。CFileDialog dlg( TRUE, _T( "txt" ), _T( "b.txt" ), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, _T( "文本|*.txt|所有文件|*||" ) );i转载 2008-10-29 11:14:00 · 1372 阅读 · 0 评论 -
VC ListCtrl控件的使用
在设计面板中,将控件拉到窗口中,在属性中修改自己向要的ID,并且,右键单击控件,在添加变量中输入成员变量,将该控件添加到窗口类,作为成员变量。一般来说,我们使用listctrl是为了将他作为二维列表使用,那么就需要在属性面板里找到view属性,将值改为report。在onpaint消息处理函数中,添加代码:// TODO: 在此添加额外的初始化代码m_list.SetExtendedStyle(原创 2008-10-29 15:06:00 · 1803 阅读 · 2 评论 -
C++ 获取当前目录
TCHAR tchBuffer[MAX_PATH];LPWSTR curPath;curPath = tchBuffer;GetCurrentDirectory(MAX_PATH,curPath);this->MessageBox(curPath);原创 2008-10-31 10:46:00 · 2141 阅读 · 0 评论 -
MFC遇到的问题 之 戊子年戌月壬辰日
使用ADO连接数据库是,遇到未知指针错误时,是因为没有初始化com库,在连接之前加上AfxOleInit()函数即可对窗口控件的初始化工作,例如CombBox或listCtrl等控件的内容添加等,不能在窗口的构造函数里做,因为那是控件还没有哦载入,应该在MyFrame::OnInitDialog()消息处理函数里做,如果手动添加这个消息处理函数,会发现窗体不能载入,因为在该函数的第一行必须执行他原创 2008-10-31 13:38:00 · 509 阅读 · 0 评论 -
WINDOWS.h already included MFC apps must not "#include 'window.h'"
在stdafx.h中import msado15.dll时,爆出了上面的错误解决办法,把导入语句放到#include //MFC核心组建和标准组建 的后面就可以了感谢 CSDN网友needways(天涯浪子)的回答和帮助原创 2008-10-31 10:29:00 · 1816 阅读 · 0 评论 -
MFC中CString *变量取出字符串并连接到其他字符串中
CString *的变量如果用 strA + strB的方法来连接的话,那么指针类型的更不不会连上去,但是编译运行都不报错,极其郁闷,我是知道运行没有达到预期的效果,才发现字符串连接有问题(C#多爽,就一种string类型,还不允许指针,呵呵),后来发现CString::GetString()方法可以返回一个字符串,才解决了这个问题呵呵(*strA).GetString();//先取内容,再获取原创 2008-11-05 14:36:00 · 3270 阅读 · 2 评论 -
在listcontrol控件里单击或双击控件取出想要的字符串
首先声明该控件的NM_CLICK消息的处理函数OnNMCLICKListView如果在设计界面点击进去会出现如下两句话LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR);// TODO: 在此添加控件通知处理程序代码*pResult = 0;但是此时编译会报错,说MNITEMACTIVARE和NMHDR类型之间的转换失败我是这样原创 2008-11-03 16:07:00 · 1279 阅读 · 0 评论 -
MFC读取.ini文件的方法
TCHAR tchBuffer[MAX_PATH];LPWSTR curPath;curPath = tchBuffer;GetCurrentDirectory(MAX_PATH,curPath);CString fileName("//sys.ini");CString path(curPath);path = path + fileName;::GetPrivateProfileString(原创 2008-11-04 10:38:00 · 3188 阅读 · 0 评论 -
通过内存映射实现进程间通信
send.cpp#include #include #include using namespace std; int main(int argc,char **argv){ HANDLE hMapFile = OpenFileMapping( FILE_MAP_ALL_ACCESS, false, "ShareFile"原创 2009-02-25 11:16:00 · 557 阅读 · 0 评论