【Simple Windows Service in C++】教程文章相关的互联网学习教程文章

windows c++ 根据进程名获取进程全路径【代码】【图】

代码有些拙略,能够根据进程名字获取进程的全路径。但是以32位编译的代码不能获取64位进程信息,GetLastError等于299。#include <Windows.h> #include <TlHelp32.h> #include <iostream> #include <conio.h>usingnamespace std;char* GetProcessPath(char* szProcessName) {PROCESSENTRY32 pe32;pe32.dwSize = sizeof(pe32);HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (hSnapShot == INVALID_HANDLE_...

Visual Studio 创建C++或C#Windows程序【图】

使用工具Visual Studio,创建一个C++或C#Windows程序,在主窗口中显示“Hello World”,用户可以用鼠标拖动“Hello World”在主窗口中移动 首先创建一个项目?选择【Visual C# 】中的 【Windows窗体应用程序]】输入名称(可以保持默认),选择位置,单击 【确定】按钮? 在主窗口中可以看见该【Form1】窗口选择工具箱中的 【Label】标签,将拖动添加到【Form1】窗口中 选择【Form1】中的 Lable 控件 设置其属性【Text 】的值为 【Hel...

C++11之后,对源代码增加了UTF8和UCS4的支持(Windows内部使用Unicode,因为nt内核用的是ucs2,那是89年,utf8到了92年才发明出来)

在C++编程中, 我们常打交道的无非是编辑器和编译器, 对编辑器起来说,我们常遇到就是乱码问题, 比如中文注释显示或是保存不了等, 解决办法就是把你的文件保存成Unicode(UTF8)。对于编译器来说, 编码方式取决于它对C++标准的支持程度, 比如C++ 11以前,字符串我们只能指定成2种:一种是MBCS,如char* p="abc哈哈"; 还有一种是UCS2, 比如wchar_t*p = L"abc哈哈", 这样编译器就知道你要表示的字符串类型。C++11之后,标准增...

Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat

刚在机器上windows环境下装上pip方便以后安装包的时候使用,谁知道第一次使用pip安装asyncio的时候就报错。在Windows7x64下使用pip安装包的时候提示报错:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)环境:windows7 x64 ,python2.7 ,VS2012原因:windows下使用pip安装包的时候需要机器装有vs2008,VS2012还不行,如果不想装VS2008的话,可以安装一个Micorsoft Visual C++ Compiler for Python 2.7的包...

windows程序员C/C++转向linux程序员时,如何编写、调试linux程序

windows程序员使用vs或windbg进行调试相当熟悉,转到linux下面,要进行程序的编写、调试,往往非常痛苦(或者说不习惯吧)。目前可以找到的各种IDE或编辑软件相当多,我试过的有eclipse+cdt+gdb,codeblock+gdb,vi+cgdb,都是不太理想,时不时的想往vs上靠,一直还是有vs的情结。 某日,正在查找gdb如何显示当前进程加载的动态库时,查到了visualgdb中关于gdb的教程,此时猛然想起了visualgdb这个工具(原来在用visualddk的...

C/C++遍历目录下的所有文件(Windows篇,超详细)【代码】

注:本文讨论的是怎么用Windows API遍历目录下的所有文件。除Windows API,还有一种Windows/Linux通用的方式,使用<io.h>。 WIN32_FIND_DATA结构 遍历目录下的文件需要用到WIN32_FIND_DATA结构。实际上有两种结构:WIN32_FIND_DATAA和WIN32_FIND_DATAW。A和W分别代表ASCII和宽字符(Unicode)。定义UNICODE宏时,WIN32_FIND_DATA指WIN32_FIND_DATAW;否则指WIN32_FIND_DATAA。 下面是两个结构的定义(minwinbase.h,VS2015): typ...

一个优秀windows C++程序员的知识体系[转]【图】

转自:一个优秀windows C++程序员的知识体系思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图:除了上面知识,程序员还要不断学习, 保持对新知识的热情。PS: 和同事讨论, 其他职业(比如司机或是厨师),他们只要学完基本的技能后就可以一劳永逸了,学的知识也比我们少的多,也不用担心新技术的更替。所以感觉程序员真的挺累, 如果不是出于兴趣,注定是干不久的; 付出这么多,工资比其他职...

C++windows内核编程笔记day11 win32静态库和动态库的使用

windows库程序:静态库:源代码被链接到调用的程序或动态库,被调用时,代码最少有1份,文件后缀.LIB 动态库: 函数被程序或其他动态库调用,被调用时,代码只有1份,文件后缀.DLL 静态库(C语言): 创建时,选择文本类型文件,输入Clib.c,设置输出路径 ../lib/Clib.lib int Clib_add(int a,int b) {return a+b; } 同一上工作区,建立控制台程序(.c文件)调用静态库: #include<STDIO.H> #pragma comment(lib,"../lib/Clib.lib") //包含静态库...

thrift配置——windows客户端与linux服务端通信(C++)

windows客户端:1、首先要安装boost库 下载源文件2、安装boost之前先要安装python-3.4.0.amd64,很多地方没有说,弄了很久3、运行bootstrap.bat 生成bjam4、bjam --toolset=msvc-9.0 --build-type=complete 编译好要30分钟 5、下载thrift0.9.16、thrift-0.9.1\lib\cpp下的工程要编译生成libthrift.lib 不然没办法用7、这里用vs2010编译,要在c++常规里面加入boost库的目录(这里debug和relase有区别,最好都编译一下) 8、写好自己...

windows c++ 流读取文件长度 ios::in ios::binary【代码】【图】

问题描述:  当用ios::in模式打开文件时,使用seekg和tellg读取文件的长度,将读取文件内容输出到控制台,发现乱码。 1int _tmain(int argc, _TCHAR* argv[])2{3usingnamespace std;4 ifstream stream("F:\\WorkSpace\\StreamDemo\\Debug\\abc.txt", ios::in);5if(!stream)6 cerr << "Open failed" << endl;7 stream.seekg(0, ios::end);8int len = stream.tellg();9 stream.seekg(0, ios::beg); 10char* bu...

C++ map 使用erase在windows下崩溃,在linux下没有问题的原因【代码】【图】

注意:此程序在win环境下会出现上述描述的问题;在mac环境下第一种方式是正常运行的。Map.erase有3个重载函数:void erase(iterator position);size_type erase(const key_type& x);  // 这个如果size_type为int,则返回值为1时代表删除成功,为0代表删除失败。void erase(iterator first, iterator last); // 相当于map.clean()。1. 错误示范备注:map是关联式容器,调用erase后,当前迭代器已经失效 std::map<int, int> mma...

windows C++内存检测

作为一个C++程序员,一个简单例子更容易理解#include "stdafx.h"#include<windows.h>#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK,__FILE__,__LINE__)#else#define DEBUG_CLIENTBLOCK#endif#define _CRTDBG_MAP_ALLOC#include <crtdbg.h>#ifdef _DEBUG#define new DEBUG_CLIENTBLOCK#endifusing namespace std;int _tmain(int argc,char* argv[]){ int *p = new int(); _CrtDumpMemoryLeaks(); return 0;}运行完成后...

C++ 中的动态库(Windows)【代码】【图】

库:在C/C++中,使用库(Library)的技术,可以将编译好的符号提供给第三方使用。库有两种:1、动态库 Dynamic-Link Library (DLL) (Linux下叫做 Shared Library)2、静态库 Static Library一、动态库的基本概念创建DLL:用VC创建一个类型为 “dll”的控制台项目,VC会自动创建DLL的项目框架它自动生成一个DllMain函数,可以类比普通应用程序中的main函数VC项目设置:1、取消“预编译头文件”2、改为 “/MTd编译”3、修改输出的D...

使用MinGW搭建windows下C/C++开发环境【代码】

一般在windows下搭建C/C++的开发环境, 作为Java出身的我首先肯定想到的是eclipse、VC++等等.但本人也是刚刚接触到C++, 所以上来直接使用IDE(集成开发环境)的话, 我反而觉得不好, 因为个人不建议上来就使用IDE, 因为它为我们提供了太多强大的功能, 比如实时校验代码语法, 提供联想功能等, 就是因为这些功能太强大, 对于初学者来说反而有些不太合适, 因为直接让我们避免了自身对C++的语法校验能力, 我在最开始学习Java的时候就是避...

wxpython应用启动报错You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale.【代码】

File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_controls.py", line 6523, in __init___controls_.DatePickerCtrl_swiginit(self,_controls_.new_DatePickerCtrl(*args, **kwargs)) wx._core.PyAssertionError: C++ assertion "strcmp(setlocale(LC_ALL, NULL), "C") == 0" failed at ..\..\src\common\intl.cpp(1449) in wxLocale::GetInfo(): You probably called setlocale() directly instead of using wxLocale and now...