编程
文章平均质量分 72
MeachiealFactory
学海无涯,回头是岸!!!
展开
-
给MFC对话框控件添加工具提示Tips
这里以我创建的一个对话框为例: 1、为对话框添加按钮(设ID为IDB_BTN)资源(按钮名字为确定),并且为 确定 按钮映射为成员变量 m_btoK,此外,添加一个 CToolTipCtrl 类的 对象m_ToolTips( 如果添加指针就要在构造函数和析构函数中初始化和释放工具提示对象,并且要创建对象出来)。class CAboutDlg : public CDialog{public:原创 2016-04-14 10:59:17 · 2927 阅读 · 0 评论 -
获取dll运行路径方法
控件中调用客户端 由于控件是有浏览器加载并调用的,所以他的进程是浏览器的进程, 如果依然按照上面的方式来获取路径,那么不管用哪个函数获取到的都是浏览器的工作路径,所以这时应该获取当前的控件的实现的dll模块的路径, 即应该获取当前应用程序的实例句柄,然后将该句柄传入GetModuleFileName中获取当前的模块路径。函数如下:CStringCPlayViewSimpleToolBa原创 2017-06-09 16:08:59 · 1984 阅读 · 0 评论 -
单元测试,集成测试概念与各种工具介绍
转发以一篇关于测试的文章,写得比较详细和到位我们在工作中会听到很多关于测试的名词,如单元测试UT,集成测试Integration Test,端到端测试end-to-end 等等。我认为,大部分人其实都仅仅是有一个模糊的认识。他们并未真正清楚每种测试的含义。当领导强调要做xx测试时,就随意的把概念扔给下属,其实自己都不清楚为什么要做,怎么做。而据我所知,国内大部分公司更是糟糕转载 2017-07-12 11:21:02 · 3763 阅读 · 2 评论 -
DuiVision开源界面库介绍
DuiVision是蓝蚂蚁工作室开发的DUI界面库,参考了仿PC管家程序、金山界面库、DuiEngine、DuiLib等多个基于DirectUI的界面库开发的。DirectUI技术一般是指将所有的界面控件都绘制在一个窗口上,这些控件的逻辑和绘图方式都必须自己进行编写和封装,而不是使用Windows控件,所以这些控件都是无句柄的。DirectUI技术需要解决的主要问题如下:1转载 2017-06-13 17:39:11 · 3230 阅读 · 0 评论 -
SetWindowLong 用法总结
SetWindowLong 函数原型为:LONG SetWindowLong(HWND hwnd,int nIndex,Long dwNewLong);详见MSDN。下面简单总结一下SetWindowLong函数几种常用的地方:1.设置窗口风格 如:SetWindowLong(hWnd, GWL_STYLE, WS_POPUP|WS_BORDER); //有边转载 2017-09-05 14:59:00 · 2708 阅读 · 0 评论 -
C#互操作系列文章:
C#互操作系列文章:C#互操作性入门系列(一):C#中互操作性介绍C#互操作性入门系列(二):使用平台调用调用Win32 函数C# 互操作性入门系列(三):平台调用中的数据封送处理C#互操作性入门系列(四):在C# 中调用COM组件 本专题概要:引言如何在C#中调用COM组件——访问Office 互操作对象在C# 中调用COM组件的实现原理剖析错误处理小结 一、引言转载 2017-09-09 23:36:45 · 451 阅读 · 0 评论 -
.Net 中关于序列化和反序列化Json的方法
.Net SDK中关于序列化和反序列化Json的方法 项目中遇到和服务端交互时需要传递数据包为json格式的包,所以在服务端和SDK中都需要对json进行解析和组合的操作, 并且对一些复杂结构的json格式的解析和序列化比较麻烦, 幸好,.Net提供一些方法的库可以帮助我们完成一些工作,下面介绍一下利用.Net中的Newtonsoft.Json.dll库对json进行序列化和反序列化操作。原创 2017-09-01 16:01:43 · 612 阅读 · 0 评论 -
通过 “期望”实现的一个并发快排
1、 什么是期望;假设你乘飞机去国外度假。当你到达机场,并且办理完各种登机手续后,你还需要等待机场广播通知你登机,可能要等很多个小时。你可能会在候机室里面找一些事情来打发时间,比如:读书,上网,或者来一杯价格不菲的机场咖啡,不过从根本上来说你就在等待一件事情:机场广播能够登机的时间。给定的飞机班次再之后没有可参考性;当你在再次度假的时候,你可能会等待另一班飞机。C++标准库模型将这种一次原创 2017-09-12 16:20:20 · 394 阅读 · 0 评论 -
C/C++的编译器|编译环境
原文链接 : https://www.cnblogs.com/findumars/p/6250998.htmlC/C++编译器的一些易混淆概念,总结一下。关于什么是Unix-like操作系统,常见操作系统间差异,什么是操作系统接口等等,请参考《操作系统宝鉴》。 C/C++编译器有哪些? 首先是如雷贯耳的这几位仁兄,MSVC、GCC、Cygwi转载 2017-12-14 17:23:14 · 3830 阅读 · 0 评论 -
托管代码和非托管代码的介绍,以及在这区别下的混合调试方法
什么是托管代码(managed code)?托管代码是一microsoft的中间语言(IL),他主要的作用是在.NET FRAMEWORK的公共语言运行库(CLR)执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段: 1.源代码编译为托管代码,(所以源代码可以有很多种,如VB,C#,J#) 2.托管代码编译为microsoft的平台原创 2018-01-08 11:55:11 · 3043 阅读 · 0 评论 -
C++ 调用C#工程的 dll , 互相调用方法
很多时候在项目中需要通过C++调用C#的dll,或者反过来条用。首先明白一个前提:C#是托管型代码。C++是非托管型代码。托管型代码的对象在托管堆上分配内存,创建的对象由虚拟机托管。(C# ) 非托管型代码对象有实际的内存地址,创建的对象必须自己来管理和释放。(C++)两者详细区别阅读我的另一篇:托管代码和非托管代码的介绍,以及在这区别下的混合调试方法1、C#调原创 2018-01-10 15:18:24 · 56688 阅读 · 18 评论 -
vs2013 加载libcurl工程出错的问题解决
项目中需要编译第三方的libcurl库 ,但是用vs2013打开工程。显示工程加载失败。项目上点击点击重新加载,会报出错误: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(36,3): 未找到导入的项目“C:\Program Files (x86)\MSBuild\Mic...原创 2018-02-09 17:53:35 · 702 阅读 · 0 评论 -
WIN32 程序中支持MFC的窗口
项目中需要封装一个dll,但是库里面需要窗口,对画框之类的界面,如果用win32的API取实现画出窗口来, 当然Ok了,但是你不觉得win32 画起来超级烦吗,如果你的win32API开发用的666,当然随便了。如果不想画,则可以用MFC的东西了。怎么用?1、从创建工程说起:首先应该创建一个win32的动态库工程或者控制台工程,看你需要了。但是需要注意点是:有一个选项需要勾选;原创 2017-07-10 18:32:33 · 1114 阅读 · 0 评论 -
auto和decltype的用法总结以及主要区别
主要区别具体区别: auto 通过变量的初始值来推断变量的类型 auto会忽略掉顶层const, 保留底层const. decltype 用于从表达式的类型推断出要定义的变量的类型 不论是顶层const还是底层const, decltype都会保留 eg: std::string f原创 2017-06-19 11:32:14 · 1369 阅读 · 0 评论 -
Building an MFC project for a non-Unicode character set is deprecated
今日编译项目遇到两个问题, 问题1: 具体: vs2013 报错: 全部重新生成: 项目: Server, 配置: Release Win32 —— 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(369,5): error MSB8031: Building an原创 2017-05-22 16:26:50 · 702 阅读 · 0 评论 -
CString 和 string, char * , char[], 以及其他类型之间的互相转换小结
在工作中,我们经常遇到遇到一些不同类型之间的转换,因为近日遇到一些很多的CString和std::string 之间的转换, 这里简单总结一下与CString相关的一些类型准换。 CString本质 CString是MFC的字符串类,它不是基本类型,而是对字符串的封装,它是自适应的,在UNICODE环境下就是CStringW,在非UNICODE环境下就是CStringA。浮点型数据,原创 2016-04-09 00:11:48 · 14493 阅读 · 0 评论 -
CString 转换 char[256]
今天遇到要CString 转换 char chArray[256]; 的用法:总结以下四种方法:CString strXml; strXml = xml.GetDoc();char chArray[256] ; CSrtring --->char [];1 、BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize)原创 2016-05-31 18:21:27 · 1024 阅读 · 0 评论 -
线程等待一定时间和及时返回继续执行,以及等待线程退出。
创建线程后让线程定时执行,可以通过sleep(time).但我们一般可以通过在使用WaitForSingleObject(HANDLE handle, DWORDdwMilliseconds)来等待。如果不让线程做等待过程的返回操作,便可直接使用线程句柄等待即可。DWORD WINAPICGisOper::VehStatusThread(LPVOID pParam){原创 2017-01-12 16:33:19 · 5318 阅读 · 1 评论 -
类成员函数作为线程函数使用
类成员函数作为线程函数使用C++类成员函数使用时,都会隐式传递一个this指针给该函数,this指针指向该类的对象。函数体可以通过显示调用该指针或直接访问类内成员。回调函数是用指针来调用的函数,最常使用的回调函数就是在创建线程时,以一个函数指针以及传递给这个函数多个参数来调用线程函数来创建线程。那么一般的类成员函数是不能用作回调函数的,因为库函数在使用回调函数时,都会传递指定的符合回调函数原创 2017-01-11 11:37:50 · 13508 阅读 · 2 评论 -
VS工程下的tlb, tlh, tli文件说明(COM)
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-05-12 11:36:13 · 3918 阅读 · 0 评论 -
COM组件学习
COM组件是以Win32动态链接库(dll)或可执行的形式发布的可执行代码组成的。动态链接库本身并不能满足对于组件架构的需求。为了满足这些需求。组件还必须是封装的。 com组件是完全与语言无关的。 com组件可以以二进制形式发布。 com组件不妨碍老客户情况下升级。 com并不是一种计算机语言。 将com与dll相提并论也是不合适的。实际上com使用了Dll来给组件提供动态链接的能力。原创 2017-05-15 14:05:19 · 5741 阅读 · 0 评论 -
函数调用入栈基本步骤(感觉和进程的栈帧结构一块看会比较容易理解)
一、函数调用的基本步骤函数调用大致包括以下几个步骤。(1)参数入栈:将参数从右向左依次压入系统栈中。(2)返回地址入栈:将当前代码区调用指令的下一条指令地址压入栈中,供函数返回时继续执行。(3)代码区跳转:处理器从当前代码区跳转到被调用函数的入口处。(4)栈帧调整:具体包括:保存当前栈帧状态值,已备后面恢复本栈帧时使用(EBP入栈)。将当前栈转载 2017-06-01 10:18:45 · 1079 阅读 · 0 评论 -
DLL 函数导出的规则和方法
//在编程c++dll时 extern "C"和.def的作用 extern "c"是c++编译器在编译函数时以c编译器的方式处理函数名 而.def的作用也是告知编译器以.def导出的文件名的方式编译函数名动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。(1) 显式调用:使用LoadLibrayr载入动态链接库、使用GetProc原创 2017-06-01 23:54:20 · 14042 阅读 · 1 评论 -
C 调用约定和 C++调用约定
函数的调用约定常用的 有两种:__stdcall 和 __cdecl 主要区别在于调用方式和对堆栈的处理不同。__stdcall:C++调用方式和函数导出方式。__cdecl : C调用方式和导出方式。具体:cdecl调用约定:cdecl调用约定又称为C调用约定,是C语言缺省的调用约定,它的定义语法是:int function (int a ,int原创 2017-06-02 00:23:57 · 3839 阅读 · 1 评论 -
C++11 并发指南三(Lock 详解)
在 《C++11 并发指南三(std::mutex 详解)》一文中我们主要介绍了 C++11 标准中的互斥量(Mutex),并简单介绍了一下两种锁类型。本节将详细介绍一下 C++11 标准的锁类型。C++11 标准为我们提供了两种基本的锁类型,分别如下:std::lock_guard,与 Mutex RAII 相关,方便线程对互斥量上锁。 std::unique_lock,与 Mutex...转载 2019-05-29 17:12:50 · 1841 阅读 · 1 评论