![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
爱凯特的威廉
工控
展开
-
dll 很好的资料
DLL入门浅析(1)——如何建立DLL 初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮助。 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的OBJ文件中相比转载 2013-10-11 15:30:59 · 681 阅读 · 0 评论 -
去掉注释换行等
std::string s = "select * form aaa \n /*mmmuuu*/ \n \n yuan hs";boost::xpressive::sregex reg1 = boost::xpressive::sregex::compile("(\\n)|^(//.*?\\n\\s*)|(/\\*(.|\\n)*?\\*/\\s*)"); std::string原创 2013-12-15 11:48:39 · 606 阅读 · 0 评论 -
boost udp
#include "stdafx.h"#include #include #include using boost::asio::ip::udp;int _tmain(int argc, _TCHAR* argv[]){try{if (argc != 2){std::cerr " return 1;}boost::asio::io_s原创 2013-12-16 19:40:06 · 828 阅读 · 0 评论 -
NamedPipe
#include#include#includeusing namespace std;DWORD WINAPI thread1(LPVOID param){char buf[256];DWORD rlen=0;HANDLE hPipe = CreateNamedPipe(TEXT("\\\\.\\Pipe\\mypipe"),PIPE_ACCESS_DUPLEX,转载 2013-12-20 16:06:54 · 550 阅读 · 0 评论 -
mysql 中COMMANDS 支持的所有命令
typedef struct { const char *name; /* User printable name of the function. */ char cmd_char; /* msql command character */ int (*func)(String *str,char *); /* Function to call to do the job. *原创 2013-12-23 10:55:58 · 671 阅读 · 0 评论 -
如何终止线程的运行(C/C++)
想要终止线程的运行,可以使用以下方法: 1、线程函数返回(最好使用该方法)。 2、通过调用ExitThread函数,线程将自行撤消(最好不使用该方法)。 3、同一个进程或另一个进程中的线程调用TerminateThread函数(应避免使用该方法)。 4、ExitProcess和TerminateProcess函数也可以用来终止线程的运行(应避免使用该方法)。下面将详细介绍终转载 2014-05-08 22:27:49 · 831 阅读 · 0 评论 -
WINDOWS API——OPENCLIPBOARD——剪切板
剪切板:系统维护的一个全局公共内存区域.每次只允许一个进程对其进行访问。剪切板操作方法如下:(MSDN上搜索Clipboard Operations)1.打开剪切板Bool OpenClipboard(HWND hWndNewOwner); 指定关联到打开的剪切板的窗口句柄,传入NULL表示关联到当前任务。每次只允许一个进程打开并访问。每打开一次就要关闭,否则其他转载 2014-04-09 14:42:56 · 627 阅读 · 0 评论 -
list使用中遇到的erase问题(List Iterator Not Incrementable)
在VS2005中使用list的erase遇到了"List Iterator Not Incrementable"问题举个例子:1.list sList;list::iterator sP;sList.push_back(1);sList.push_back(3);sList.push_back(5);sList.push_back(7);for (sP =转载 2014-04-24 15:53:46 · 537 阅读 · 0 评论 -
timeGetTime
timeGetTime获取系统时间,毫秒。系统时间是系统启动以后消逝的时间。timeGetSystemTime和timeGetTime唯一的不同是返回值,timeGetSystemTime使用MMTIME结构,开销稍大。timeGetTime的精度取决于机器,大概五毫秒或更多,可以使用timeBeginPeriod和timeEndPeriod函数增加精度。GetTickCo转载 2014-04-25 11:23:47 · 1397 阅读 · 0 评论 -
端口
端口是主机与外设进行数据交换的。(外设接口电路有专用于数据交互的寄存器。为了与CPU中的寄存器相区别,称之为“端口”)。端口有数据端口,状态端口和控制端口3种。PC机给予每一个端口分配了一个地址(称为端口号),形成一个独立于内存空间的I/O地址空间。在8086/8088中,端口地址的范围是0000至FFFF。CPU对外设的操作通过专门的端口读写指令来完成。读端口用IN指令,写端口用转载 2014-06-01 11:03:34 · 712 阅读 · 0 评论 -
钩子
全系统钩子要放在DLL中,监视屏幕重画可用WH_CALLWNDPROC,下面是个鼠标钩子,可以参考Win32全局钩子在VC5中的实现作者:贺成士 Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子的转载 2014-06-04 21:25:18 · 509 阅读 · 0 评论 -
qt 调用dll
声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的。并且用我前两篇有关DLL文章里面的方法,从dll中导出了导入库(.lib)文件,dll中有两个函数,原型如下: void HelloWorld(); //函数内部调用Win32 API,功能是弹出一个helloworld提示框 int add(int a,int b); //实现两个转载 2014-06-05 22:42:51 · 643 阅读 · 0 评论 -
qt 进程通信
1、QT通信机制为了更好的实现QT的信息交互,在QT系统中创建了较为完善的通信机制。QT的通信可分为QT内部通信和外部通信两大类。对于这两类通信机制及应用场合做如以下分析:(1)QT内部对象间通信在图形用户界面编程中,经常需要将一个窗口部件的变化通知给窗口的其它部件使其产生相应的变化。对于这种内部对象间的通信,QT主要采用了信号和槽的机制。这种机制是QT区别于其他GUI工具转载 2014-06-05 22:44:06 · 660 阅读 · 0 评论 -
c++ CLI C#
没有使用C++/CLI之前,我很怀疑它存在的意义.因为C#的语法更清爽,运行效率也不比C++差多少.C++本身就很复杂了,再乘以CLI的复杂度,我不能想出人们为什么会学习它,使用它. 但是在使用C#的过程中,渐渐发现.Net类库不够丰富,有很多功能必须通过P/Invoke来实现.一般常用的Windows API函数还好说,接口通常比较简单,DllImport + IntPtr已经足够了,而且转载 2014-06-23 20:18:54 · 572 阅读 · 0 评论 -
WINVER和_WIN32_IE等宏的含义
它们是用于定义windows和Internet Explorer版本号的,用于区分不用版本的函数和参数。在你编译程序时会根据不同的版本系统号,链接不同的函数和参数。Minimum System Required Macros to Define----------------------------------------------转载 2014-06-09 10:47:42 · 718 阅读 · 0 评论 -
QT QSplashScreen
#include "mainwindow.h"#include #include #include #include#includeint main(int argc, char *argv[]){ QApplication app(argc, argv); QSplashScreen splash; QTime t0; t0原创 2014-05-29 15:06:36 · 753 阅读 · 0 评论 -
解决QT中Warning中Wreorder
在类中声明的顺序与类的初始化列表中顺序不一致导致的。原创 2014-06-19 21:11:20 · 1050 阅读 · 0 评论 -
QT 获得屏幕宽度
QDesktopWidget *dw = QApplication::desktop(); if(dw) { g_ScreenWidth = d->width(); }原创 2014-06-19 21:17:39 · 1028 阅读 · 0 评论 -
CComVariant相关
与使用BSTR相较而言,使用VARIANT算比较简单了,设置了类型信息和数据就完事,而且,从内存管理的角度来说,VARIANT的内存方式也相对接近常规化,因不了解而出问题的概率大大减少了,但是,为了避免万一的情况发生,我们总是不懈努力,这就是CComVariant出现的动机吧(个人诳语丷丷)。 哈哈,其实CComVariant的出现应该从VARIANT的不足谈起(也就是所谓的使用VARI转载 2013-12-03 23:25:59 · 578 阅读 · 0 评论 -
DisableThreadLibraryCalls
1、函数原型BOOL WINAPI DisableThreadLibraryCalls( __in HMODULE hModule);功能: 禁用指定的DLL的DLL_THREAD_ATTACH和DLL_THREAD_DETACH通知,这样可以减小某些程序的工作集大小。 参数:转载 2013-12-03 21:31:14 · 2004 阅读 · 0 评论 -
c++ string
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常stri转载 2013-10-11 15:43:35 · 670 阅读 · 0 评论 -
SetWindowPos API
SetWindowPos 函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。 函数原型:BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Fl转载 2013-10-30 09:24:13 · 746 阅读 · 0 评论 -
窗口置顶/取消置顶
#include #pragma comment(linker, "/subsystem:windows")int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow){ HWND hWnd = NULL; HWND htmp =转载 2013-10-30 11:15:02 · 2579 阅读 · 0 评论 -
static
static用法小结static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储转载 2013-11-16 00:19:50 · 780 阅读 · 0 评论 -
QSystemTrayIcon
Detailed DescriptionThe QSystemTrayIcon class provides an icon for an application in the system tray.Modern operating systems usually provide a special area on the desktop, called the system tray原创 2013-11-18 20:17:53 · 998 阅读 · 0 评论 -
QMessageBox
先来看一下最熟悉的QMessageBox::information。我们在以前的代码中这样使用过: QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); 下面是一个简单的例子:转载 2013-11-19 11:02:22 · 920 阅读 · 0 评论 -
Qt主窗口没有最小化,最大化按钮且最大化显示
//Qt主窗口没有最小化,最大化按钮且最大化显示 int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWinCE w; w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint& ~Qt::Wind转载 2013-11-19 11:04:25 · 1778 阅读 · 0 评论 -
QT中设置窗口大小和居中部
this->resize(QSize(200, 200)); QDesktopWidget* desktop = QApplication::desktop(); // =qApp->desktop();也可以 this->move((desktop->width() - this->width())/2, (desktop->height() - this->heig原创 2013-11-19 14:47:51 · 868 阅读 · 0 评论 -
stl string
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常st转载 2013-11-22 22:26:15 · 547 阅读 · 0 评论 -
遍历树
递归与非递归转换的基础知识是能够正确理解三种树的遍历方法:前序,中序和后序,第一篇就是关于这三种遍历方法的递归和非递归算法。如何用栈实现递归与非递归的转换(一)三种遍历树的算法一.为什么要学习递归与非递归的转换的实现方法? 1)并不是每一门语言都支持递归的. 2)有助于理解递归的本质. 3)有助于理解栈,树等数据结构.二.三种遍历树的递归和非递归算法转载 2013-11-22 23:24:09 · 683 阅读 · 0 评论 -
boost string
boost::algorithm提供了很多字符串算法,包括: 大小写转换; 去除无效字符; 谓词; 查找; 删除/替换; 切割; 连接; 我们用写例子的方式来了解boost::algorithm能够为我们做些什么。boost::algorithm学习#include using namespace std;using namespace boost; 一:大小写转换1转载 2013-11-29 22:49:17 · 683 阅读 · 0 评论 -
STL 文件流
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'n';就表示把字符串"Write Stdout"和换行字符('n')输出到标准输出流。转载 2013-11-29 14:05:06 · 732 阅读 · 0 评论 -
stl
std::isdigit()判断是否为整形数,std::ispunct(),判断是否为标点符号或者特殊符号std::isalpha()判断数否为英文字符原创 2013-11-30 21:56:24 · 568 阅读 · 0 评论 -
c++关键字详解
c++关键字详解(volatile,mutable,explicit,dynamic_cast(expression))等1 volatile有些变量是用volatile关键字声明的。当两个线程都要用到某一个变量且该变量的值会被改变时,应该用volatile声明,该关键字的作用是防止优化编译器把变量从内存装入CPU寄存器中。如果变量被装入寄存器,那么两个线程有可能一个使用内存中的变量,一转载 2013-12-08 16:24:04 · 575 阅读 · 0 评论 -
vc++ 共享内存
// ShareMemory1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){原创 2013-12-01 21:36:48 · 1130 阅读 · 0 评论 -
Windows API函数大全
Windows API函数大全1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接转载 2013-12-02 12:25:43 · 775 阅读 · 0 评论 -
const
1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const转载 2013-12-03 12:04:03 · 487 阅读 · 0 评论 -
memmove
void * memmove (void *dest, const void *src, size_t len){ if(NULL==dest||NULL==src||len <=0) returnNULL; char *d = dest; const char *s = src; if (d < s) while (len--...原创 2019-05-21 01:04:04 · 1435 阅读 · 1 评论