- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 “warning C4251::CStringT<BaseType,StringTraits>需要有 dll 接口”解决办法
在使用mfc开发dll时,如果我们导出的类中使用了像CString等模板类的话,就会提示4251的编译警告,可以用两种方法来消除。1、将工程的MFC使用改为“在共享dll中使用mfc”,编译时就没有了4251的警告信息。2、如果项目只允许使用“在静态库中使用mfc”,那就在工程中添加以下两个语句:template class _declspec(dllexport) CStringT>
2015-09-19 15:39:13
1553
1
转载 CListCtrl的用法(转载)
1. CListCtrl 样式及设置2. 扩展样式设置3. 数据插入4. 一直选中Item5. 选中和取消选中Item6. 得到CListCtrl中所有行的checkbox的状态7. 得到CListCtrl中所有选中行的序号8. 得到item的信息9. 得到CListCtrl的所有列的header字符串内容10. 使CList
2015-06-01 13:37:15
1536
原创 MFC自绘工具栏在VS2008中显示不正常的解决办法
最近在VS2008中新建了MFC的项目,其中使用到了自绘的工具栏,就是从CToolBar派生了自绘的工具栏类,在此类中增加了WM_ERASEBKGND消息的响应函数,在函数中重绘了工具栏的背景色。 原先在VC6中,这个自绘工具栏的类能正常工作,显示出重绘的背景颜色。但是在VS2008中,同样的类却不能显示重绘的背景色。 后来发现,在此类中增加WM_PAINT的消息响应函数,函数中
2015-02-25 15:38:35
1785
原创 android-ndk-r7的使用
android-ndk-r7的使用和配置已经相当简单,不再需要Cygwin,不需要安装,只需要解压后注册环境变量即可。注册环境变量:新建一个系统变量: NDK_HOME=D:\androidDesign\android-ndk-r7,修改PATH的值,在最后增加;%NDK_HOME%.接下来就可以使用ndk了,当前前提是eclipse和sdk已经设置完毕,能正常使用,关于这两个的设置请参看
2014-11-06 16:04:48
2165
转载 “Win7内部版本7600此Windows副本不是正版”解决方法
有很多人反应windows7会出现提示“Win7内部版本7600此Windows副本不是正版”,其实这是被优化软件优化后的结果,并不是破解的问题,更不需要重装系统。解决方法如下:打开控制面板-管理工具-服务-看一下Sever、Software Protection、SPP Notification Service这三个服务是不是都开启的,如果不是,启动类型全部设为“自动”(右键“属性”
2014-10-15 16:22:47
26712
1
转载 CAsyncSocket对象不能跨线程之分析 (转载)
现象用多线程方法设计socket程序时,你会发现在跨线程使用CAsyncSocket及其派生类时,会出现程序崩溃。所谓跨线程,是指该对象在一个线程中 调用Create/AttachHandle/Attach函数,然后在另外一个线程中调用其他成员函数。下面的例子就是一个典型的导致崩溃的过程:CAsyncSocket Socket;UINT Thread(LPVOID){ S
2014-10-13 15:36:55
595
转载 VC连接ADO方式ACCESS数据库在WIN7下编译到XP下不能运行解决方法
以下为转载:不知道大家有没有遇见这种情况,在WINDOWS7下编写的ADO连接数据库的程序,放在WIN XP下就会发现连接失败的现象,在网上找了一些资料也没找着,回头看代码,其中有一句是加载ADO驱动,就是import C:\Program Files\Common Files\System\ado\msado15.dll 这个文件,这个文件就是ADO的驱动,由于WIN7下的驱动比XP下的
2014-05-07 10:31:25
860
转载 C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址;如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址信息,则必须顺序获得每个网卡,再依次获取其信息等;在windows sdk中,用IP_ADAPTER_INFO结构体存储网卡信息,包括网卡名、网卡描述、网卡MAC地址、网卡IP等,该结构体
2014-03-25 22:28:00
713
原创 VS2010中LINK : fatal error LNK1146的解决办法
在xp或win7的一些版本中使用vs2010编译VC程序时会出现这个错误:“LINK : fatal error LNK1146: 没有用选项“/out:”指定的参数”。解决办法如下:将C:\Program Files\Microsoft Visual Studio 10.0\VC\bin目录下的c2.dll、cl.exe、cl.exe.config三个文件复制至C:\Windows\System
2013-12-27 10:35:09
3195
转载 MFC各种指针的获取-转载自红黑联盟
MFC各种指针的获取1、获取应用程序指针CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针CWinApp 中的公有成员变量m_pMainWnd 就是主框架的指针CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);或者CMainFra
2013-07-26 10:25:55
934
转载 函数式思维: 为什么函数式编程越来越受关注
函数式编程语言使我们能够用高层次的抽象取代其他核心构建块,并更注重结果而不是步骤。函数式编程的目标之一是最大程度地减少可变状态。
2013-07-11 07:13:47
626
转载 VC蓝牙编程
查阅了好多资料,看了好多东西,感觉VC上的蓝牙编程好乱,看得头都大了,下面把看到的和学到的整理一下(如有错误,请指正):VC蓝牙编程貌似方式不止一种,网上比较流行的是IVT的BlueSoleil_SDK,用windows上的两种bluetooth的开放接口,一种是以熟悉的windows sockets方式,另外一种是新加入的BlueTooth APIs方式。在SDK的samples中只提到了w
2013-05-03 13:57:57
3347
1
原创 VC6.0中单文档程序窗口最大化运行的方法
在VC6.0开发时,有时候需要程序一打开时窗口就以最大化的方式运行。最简单的方法是在C****App::InitInstance()函数中的if (!ProcessShellCommand(cmdInfo))语句前添加:m_nCmdShow = SW_SHOWMAXIMIZED;语句,这样就不会出现先显示正常大小的窗口然后再显示最大化窗口的现象了。
2013-03-29 15:30:26
1517
1
转载 基于控件的VC串口编程
1.MSComm控件Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。 要使用ActiveX控件MSComm,程序员必须将其添加入工程,其方法是: (1)单击主菜单proj
2013-02-07 22:54:36
1983
转载 用控件(CMSComm)进行串口编程
1.建立项目 2.在项目中插入MSComm控件3.利用ClassWizard定义CMSComm类控制变量4.在对话框中添加控件 5.添加串口事件消息处理函数OnComm()6.打开和设置串口参数7.发送数据 开始吧:1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码
2013-02-07 22:42:22
930
转载 嵌入式编程中关于const,static,extern,volatile的用法
一.const的用法:为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的边界和switch分支标号(也可以用枚举符代替)用法1:常量 取代了C中的宏定义,声明时必须进行初始化。const限制了常量的使用方式,并没有描述常量应该如何分配。如果编译器知道了某const的所有使
2013-01-21 14:26:47
2501
原创 数组和指针的一些小知识
定义一个数组:int a[4] = {1,2,3,4};a与&a[0]是等价的,都是数组首元素的地址----而不是数组的首址!&a则才是数组的首址----尽管&a与&a[0]的值相同,但类型是不一样的.&a的类型是type(*)[LEN},而&a[0]的类型是type*。&a+1的结果是a数组后的地址,也就是在数组首地址上再加上sizeof(a)的值。a+1或者&a[0]+1的结果
2013-01-21 10:03:55
483
转载 嵌入式与产品-凤舞天
这段时间,网上面试的毕业生比较多,他们都向往做嵌入式,认为嵌入式才是真正的技术,让我无言以对。我以为,嵌入式本身只是一个工具,我们是用他来快速实现我们要实现的产品,我们应该把更多的精力放在产品本身的技术上,而不应该把精力放在嵌入式上。若以产品本身为导向,假设你不懂技术,没关系的,你只要把需求分析清晰、产品定义好,完全可以委托一家设计公司完成,我们华禹工控的好几个做的大的,都是不懂我
2013-01-14 19:44:11
552
转载 模块化设计与积木
大家小时候都玩过积木都知道通过不同的组合可以搭出不一样的效果,这个原理其实也可以用在创新设计上--通过把产品系统进行模块化,然后组合不同的模块就能创新出不同产品来。在以前的分立产品时代,这个设计理念比较难以实现但是随着IC功能日益强大这个理想可以实现了。例如在8位单片机时代,对于一个设计比较难以去实现模块化,但是随着32位MCU日益强大,搭载强大的嵌入式系统后,工程师就可以利用软件将功
2013-01-11 16:45:27
2832
原创 软件设计方法和模块划分
在软件设计中,设计过程一般分为以下三步: 第一步,根据软件需求划分出各个功能模块,此时模块的划分是按照功能需求进行划分。 第二步,按照专业领域进行细分,划分出实时功能模块的各个子模块。划分的专业领域如数据结构算法、图形界面、IO操作、网络通信、硬件操作等等。 第三步,根据一些基本原则,将子模块再进行细分,分解为一个一个类似于积木的小模块,这些小模块就
2013-01-11 15:00:22
6837
原创 EFM32的GPIO驱动蜂鸣器的问题
电路如图所示,BUZZY接单片机的PA1,将GPIO设置为增加输出,默认的输出6mA,在PA1输出高电平时,单片机会复位,悲催的EFM32的IO口啊。有没有同好们遇到类似的问题呢?是如何解决的呢?
2012-12-24 15:49:26
2063
2
原创 EFM32的GPIO接按键时需要注意的问题
原先的项目是用MSP430单片机,按键的一端接上拉电阻后和单片机的IO口连接,另一端直接接GND。当没有按键按下时,IO口读取到的是高电平,当按键按下时,IO口读取的是低电平。现在采用EFM32单片机,还是同样的按键电路,在测试时发现,有几个按键按下时,单片机直接复位重启,而另外几个按键则能正常使用。8个按键采用的PA7--PA14共8个IO口。仔细检查硬件连接,发现按键电路没有问题,在松开按
2012-12-21 14:33:58
3469
原创 EFM32的定时器使用例程
EFM32提供的开发套件例程里好像没有关于定时器的例程,这两天在调试过程中用到了定时器,虽然使用定时器很容易,但是在定时器的配置、中断的设置过程中还是花费了一些时间。现在我把定时器的使用过程和配置程序贴上来,方便以后有人用到时可以很快的添加到自己的项目中。1、初始化定时器,如果只做定时应用,只需要设置定时器的时钟、定时模式、Top寄存器。void InitTimer1(void){
2012-12-20 10:30:12
7659
2
原创 J-Link不能连接EFM32调试的问题
前两天搭的EFM32LG380F256单片机的最小系统,在下载了两次程序后,突然不能连接调试了。将新添加的飞线去掉后,利用EA Commander进行解锁,还是不能连接单片机。测量单片机的电源引脚、时钟引脚连接都正常,更换一片新的单片机后还是不能连接。然后决定重新搭一个最小系统板,先只连接了电源、时钟、复位、下载线,用j-link进行连接,还是没有读到芯片,解锁后再尝试连接,还是失败,悲催了,
2012-12-19 09:46:26
3611
原创 用CMSIS库进行EFM32自定义时钟的配置
EFM32提供的库功能很强大,如果用到其他频率的晶振的,只需要修改system_efm32lg.c文件中的EFM32_HFXO_FREQ宏定义为晶振的频率,然后在单片机上电初始化时增加CMU_ClockSelectSet( cmuClock_HF, cmuSelect_HFXO );语句即可。
2012-12-16 09:21:31
6647
1
C#学习资料-人资管理系统源码
2014-11-11
C#学习资料-进销存源代码
2014-11-11
MFC实现的扁平化按钮
2013-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人