
VCMFC\C#界面
文章平均质量分 77
VCMFC\C#界面
软件架构师何志丹
我的源码、视频、博文、电子书可复用性、可理解性、可测试性皆强。优于工作,劣于竞赛。源码:https://gitcode.com/invite/link/a07392368f3a4ae295c0
展开
-
VC雕虫小技集(五)
VC雕虫小技集(五)何志丹1,vc中右键点击一个类或宏,可以察看他的定义,但如何返回初始地方呢? install visual assist, and use Alt+left arrow 按菜单中的 后退 (转45度)按钮 好像是又打开了一个文档,关闭它就行了 2,怎样获取系统菜单,并且弹出系统菜单?void CTestsysmenuDlg::OnO原创 2003-09-15 23:50:00 · 2696 阅读 · 0 评论 -
ShellExecute函数返回值含义
0 操作系统内存溢出或者系统资源不够 ERROR_FILE_NOT_FOUND 指定的文件没有找到 ERROR_PATH_NOT_FOUND 指定的地址没有找到 ERROR_BAD_FORMAT EXE文件是一个无效的PE文件格式,或者EXE文件损坏了 SE_ERR_ACCESSDENIED 无权访问该文件 SE_ERR_ASSOCI转载 2014-12-09 11:11:05 · 2969 阅读 · 0 评论 -
利用stl的集合类函数 操作mfc数组
本文包括三部分:1,源码,2,功能测试。 3,边界测试。 其中源码包括4部分:求CArray的 交集、并集、差集、对称差原创 2014-12-03 18:43:02 · 1162 阅读 · 0 评论 -
Win2008服务端连不上10060
程序在本机(Win7)上没问题放在Win2008就连不上网络组件是本团队开发的。用本团队的网络组件的demo也不行。下载了一个工具TCP调试助手(V1.9).exe ,也不行。换了几个端口也不行本机做服务端,服务器在客户端可以。和网管沟通后,是Windows自带的安全中心引起的。服务器管理那 新建规则 开发对应的端口,就好了原创 2016-07-06 12:05:31 · 434 阅读 · 0 评论 -
VS2005 error C2864 only static const integral data members can be initialized within a class
only static const integral data members can be initialized within a class只要静态常量int 类型成员变量可以在类内部初始化。 only static const integral data members can be initialized within a class1>生成日志保存在“file://原创 2016-06-25 10:28:06 · 1924 阅读 · 0 评论 -
如何创建一个用户看不到的窗口。
有时,我们要使用一个看不到的窗口。比如:通过OpenG取当前显卡。OpenG需要一个hDC,而hDC需要一个hWnd。 所以建立一个看不到的CWnd就是最简单的解法了。CWnd wnd; wnd.CreateEx(NULL, "#32770", "获取当前显卡", WS_CAPTION, 0, 0, 1, 1, NULL, NULL); 注意:1,不要加WS_VISIBL原创 2016-06-23 17:27:18 · 376 阅读 · 0 评论 -
wbemtest.exe 远程连接
如果连接本机 root\cimv2局域网其他机器如下图。原创 2016-06-22 14:50:53 · 2822 阅读 · 0 评论 -
WMI使用的WIN32_类库名 .
"SELECT * FROM Win32_NetworkAdapter WHERE (MACAddress IS NOT NULL) AND (NOT (PNPDeviceID LIKE 'ROOT%'))", L"PNPDeviceID", // 硬盘序列号 "SELECT * FROM Win32_DiskDrive WH转载 2016-06-21 15:38:24 · 2420 阅读 · 0 评论 -
开启关闭线程的封装类
class IThreadFun{public: virtual void OnDo()=0;};//每200毫秒调用一次IThreadFun的OnDoclass CThreadHlp{public: static void StartThread(IThreadFun* pFun) { if( NULL != s_pThread ) retu原创 2016-06-17 09:44:07 · 398 阅读 · 0 评论 -
VS2005导出函数命名规则
操作系统:Win7总结的规律:第一个@前面是函数名,第一个@到第二第三个@是类名,第三个@到第四个@是返回值参数的类型1,如果有参数(不包括void),以@Z结尾,否则以XZ结尾2,VS2005都是以QAE开头 //DLL_EXPORT是自定义的导出类宏 后面是Win7+VS2005个函数导出后的名称class DLL_EXPORT T{public: vo原创 2016-06-16 16:25:18 · 607 阅读 · 0 评论 -
VC6和VS2005(VC8)各项目默认运行时库
VC6各类型项目默认使用的运行时库。项目类型默认使用的运行时库MFC Extension Dll (MFC AppWizard(dll) )MDRegular DLL(MFC AppWizard(dll) )MTMFC AppWizard(exe)MD原创 2016-06-03 21:10:15 · 888 阅读 · 0 评论 -
VS2005(excel2007)利用Automation(OLD Automation)方法。将Excel当成组件服务器的编译错误 我的系统盘和office都装在d盘。 自动生成的import有问题
VS2005(excel2007)利用Automation(OLD Automation)方法。将Excel当成组件服务器的编译错误我的系统盘和office都装在d盘。自动生成的import有问题,需要手动修改自动生成的#import "D:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespace修原创 2015-11-13 16:16:10 · 833 阅读 · 0 评论 -
Tcp Accept返回的Socket不能作为唯一标示
::accept(m_sock, NULL,NULL);返回值不是唯一的。 比如:某个客户端连上了,与其通讯的sock是628,此客户端个关闭后,另一个客户端连上,sock很可能是628。原创 2016-05-24 11:40:20 · 1551 阅读 · 3 评论 -
VC雕虫小技集(六)
VC雕虫小技集(六)何志丹1,,如何取得Tree Control上的CheckBox状态~ OnInit中加:m_treeCtrl.InsertItem("item1");m_treeCtrl.InsertItem("item2"); void CCDialogDlg::OnButton1() { HTREEITEM hItem = m_tr原创 2003-09-15 23:50:00 · 2527 阅读 · 0 评论 -
VC雕虫小技集(七)
VC雕虫小技集(七)何志丹1,图片控件右键属性 type : bitmap你直接选image也行IDB_BITMAP1位图的IDm_ctrl 是与图片控件相关联的控制型变量void CDlg2Dlg::OnButton1() { CBitmap bitmap1; bitmap1.LoadBitmap(IDB_BITMAP1);原创 2003-09-15 23:50:00 · 3192 阅读 · 0 评论 -
VC雕虫小技集(三)
VC雕虫小技集(三)何志丹1,固定窗口大小,最大值为(600,400),最小值也为(600,400).void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { lpMMI->ptMaxTrackSize.x = 600; lpMMI->ptMaxTrackSize.y = 400;原创 2003-09-15 23:49:00 · 3468 阅读 · 3 评论 -
cannot convert parameter 1 from 'class A' to 'class A'
何志丹出错代码:class A {public: A(){};private: CStringArray x ;}; fun(A a){ }void CTest22Dlg::OnButton1() { A a原创 2007-04-12 19:15:00 · 4737 阅读 · 0 评论 -
VC雕虫小技集(四)
VC雕虫小技集(四) 何志丹1, 阅读程序常常要看此变量在那些地方值改变过ctrl+f查找太麻烦将此变量前加const改变的地方报错 2, 看一个函数被那些函数调用.方法:1,调试状态下原创 2004-06-03 11:00:00 · 3490 阅读 · 1 评论 -
应用程序向导
应用程序向导 何志丹 使用应用程序向导可以快速生成程序框架。选择菜单“File→New”命令,此时会弹出“New”对话框,下面对该对话框中的常用选项进行逐一说明。1.文件(Files)属性页 单击“Files”标签,打开“Files”属性页,如图1-3所示。图1-3 文件属性页文件类型虽然多,但常用的只有两种:C/C++ Header Fi原创 2007-03-31 11:29:00 · 3178 阅读 · 0 评论 -
Visual C++ 6.0的安装
何志丹 1.1 认识Visual C++“工欲善其事,必先利其器”,在编写代码之前,有必要先熟悉一下开发工具的安装和使用。1.1.1 Visual C++ 6.0的安装虽然Visual C++ 6.0的安装和其他软件原创 2007-03-31 11:28:00 · 4986 阅读 · 0 评论 -
FD_CONNECT 为什么没触发?
先WSAEventSelect,再Connect。注意Connect 有可能失败,比如:服务端没开启。原创 2016-06-03 14:50:57 · 1547 阅读 · 0 评论 -
VS2005 Debug版,dll /MTd,exe /MDd 跨dll使用CString的链接错误
dll中导出函数DLL_EXPORT void DoString(CString& str);如果exe和dll都是/MD,一切正常如果dll /MTd,exe /MDd 则找不到DoString,错误提示:error LNK2019: 无法解析的外部符号 "__declspec(dllimport) void __cdecl DoString(class ATL::CString原创 2016-06-02 11:30:53 · 655 阅读 · 0 评论 -
为什么有时可以在头文件可以定义变量,有时不行(变量重定义)。
为什么有时可以在头文件可以定义变量,有时不行(变量重定义)。头文件中只能定义常量。如:const int x;原创 2016-05-30 09:39:35 · 633 阅读 · 0 评论 -
MD和MT混用的后果
跨dll操作stl对象时(如:std::string、std::vector)崩溃,原因:在不同堆中申请、释放内存。如果一个dll以stl为主要类库,这种情况必定发生。主要分如下几类:1,导出函数出参使用了stl对象。2,导出了类,此类有公有成员。可以通过笨办法解决,不设置公有变量,通过Set和Get函数操作成员,工作量巨大。 1,VC6 Debug测试崩溃的情况。原创 2016-06-03 21:08:05 · 5834 阅读 · 2 评论 -
生成lib失败
lib的目标文件夹必须手动创建。exe和obj的目标文件会自动创建。原创 2016-05-17 15:58:15 · 445 阅读 · 0 评论 -
明明导出的函数,无法导入
导出时是:__imp_?Utf82Unicode@@YA?AV?$basic_string@GU导入时是:__imp_?Utf82Unicode@@YA?AV?$basic_string@_WUG和_W的区别,为了研究各字母的含义。做了如下实验:void fun()=>?fun@@YAXXZvoid fun(int)=>?fun@@YAXH@Zvoid fu原创 2015-08-06 16:22:27 · 920 阅读 · 0 评论 -
VS2002(VC7) 新建arx项目
VS2002(VC7) arx2006objectArx解压,到utils\ObjARXWiz去安装ArxWizards.msi。新建ObjectARX/DbX/OMF项目,注意:选择支持MFC,不然容易出现以下两个问题:fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #includ原创 2015-08-05 16:19:34 · 1036 阅读 · 0 评论 -
用宏定义成员函数,VC6的类视图显示错误
用宏定义成员函数,VC6的类视图显示错误,实际函数可以使用。VC7没此问题。原创 2015-02-02 08:43:20 · 1032 阅读 · 0 评论 -
用宏定义成员函数,VC6的类视图显示错误
用宏定义成员函数,VC6的类视图显示错误,实际函数可以使用。VC7没此问题。原创 2015-02-02 08:43:14 · 794 阅读 · 0 评论 -
VC6优点:
VC6优点:a,内容少,学习成本低。b,常用功能操作简单。c,占用资源少。有个笑话是:启动VC6后写了20行代码,对方的VS201X还在启动中。d,Win2000和以后的操作系统自带mfc.dll。相对于VC7,VC6有如下缺点:a,对stl支持不友好,VC6是98年,stl成为标准是99年。b,Watch窗口,看到字符串太短。VC7也有这个问题,但能看到的长得多。原创 2014-09-16 21:37:27 · 2063 阅读 · 0 评论 -
3态复选框CheckBox
软件架构师何志丹:3态复选框CheckBox原创 2017-12-22 18:32:00 · 1885 阅读 · 0 评论 -
_MSC_VER
VS2010(VC10) 使用平台工具集V60( VC6.0) , 运行调试时:_MSC_VER的值是1200 , 编辑时:提示条和灰色显示是1600原创 2018-01-17 11:04:36 · 339 阅读 · 0 评论 -
字符串替换无效
软件架构师何志丹字符串替换无效CString str = _T("\03ab"); str.Replace(_T("\0x3"),_T("X"));\0x改成\x就好了str.Replace(_T("\x3"),_T("X"));原创 2018-01-29 09:46:31 · 612 阅读 · 0 评论 -
VC6 到 VC8 不支持 模板类 显式实例化?
软件架构师何志丹VC6 到 VC8 不支持 模板类 显式实例化?VC9和VC10 可以。 template class CStrBase<char>; template class CStrBase<WCHAR>; error C2949: 'SNXH::SN::CStrBase<CHART>' : explicit instantiation; cann...原创 2018-03-12 16:12:03 · 448 阅读 · 0 评论 -
以下代码为什么无法导出函数
软件架构师何志丹ExportDefine.h文件代码如下:#pragma once#ifdef CADBASELib_20180328 //dll内部 #define DLL_CADBASE_EXT_CLASS __declspec(dllexport) #else //dll外部 #define DLL_CADBASE_EXT_CLASS __declspec(dl...原创 2018-03-30 12:01:12 · 295 阅读 · 0 评论 -
导出的函数无法导入
#ifdef GLOBE_20150806#define GLOBE_EXPIMP __declspec(dllexport)#else#define GLOBE_EXPIMP __declspec(dllimport)#endif GLOBE_EXPIMP extern std::string WideCharToMultiChar(std::wstring str);//宽字原创 2015-08-07 10:56:01 · 1031 阅读 · 0 评论 -
有个库 snbcg ,加了宽字符版,lib和dll更名成snbcgu.lib snbcgu.dll
有个库 snbcg ,加了宽字符版,lib和dll更名成snbcgu.lib snbcgu.dlltest.exe导入snbcgu.lib也是找的snbcg.dll而不是snbcgu.dll,编译的时候有警告。warning LNK4070: /OUT:SNBCG.dll directive in .EXP differs from output filename解决方法:SNBC原创 2015-08-09 10:34:03 · 628 阅读 · 0 评论 -
_dllmain@12 重定义 可能原因
非MFC dll,不使用预编译头文件。 #include "stdafx.h"可能会有此错误。原创 2016-06-14 15:10:17 · 852 阅读 · 0 评论 -
MFC apps must not #include <windows.h>
MFC apps must not #include 详细提示:1>d:\program files (x86)\microsoft visual studio 8\vc\atlmfc\include\afxv_w32.h(16) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #i原创 2016-06-04 15:06:45 · 6063 阅读 · 0 评论 -
同时使用winsock和winsock2的问题
我的异步选择模型 #include "afxsock.h"我的事件选择模型 #include "winsock2.h" 试了好多方法,都是重定义或未定义。统一换成winsock2.h,报错: mfc不能包括windows.h后来换成afxsock.h就好了。原创 2016-06-04 11:13:22 · 754 阅读 · 0 评论