win32

eclipse 一直在refreshing workspaceing

若如初见. 提交于 2019-12-14 22:34:35
eclipse老是卡在Refreshing workspace 最近老是遇到eclipse没有响应,参考网络上的相关帖子做了些优化,但问题依旧。 后来发现出现这个问题一般都是eclipse无响应,直接结束进程后导致的,看了下eclipse日志,果真如此。 !SESSION 2013-10-10 15:55:30.429 ----------------------------------------------- eclipse.buildId=M20120208-0800 java.version=1.7.0_03 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN Framework arguments: -product org.eclipse.epp.package.jee.product Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.jee.product !ENTRY org.eclipse.core.resources 2 10035 2013-10-10 15:55:33.230 <span style=

技术小咖之基于SDK的第一个windows图形界面程序

我与影子孤独终老i 提交于 2019-12-13 12:02:49
第一个SDK应用程序hello world 1、利用vc6.0创建第一个SDK的windows图形界面应用程序 运行Microsoft Visual C++ 6.0,选择file-->new子菜单,弹出相应窗口。 该对话框有四个选项卡:Files、Projects、workspace以及Othere Documents。 Files与创建文件有关。比如头文件、源文件。 Projects与创建工程有关。 Workspace与创建工作区有关。 Othere Documents 与创建微软的其他文件有关,比如word文档等。 我们选择Projects选项卡,Microsoft Visual C++ 6.0可以创建很多类型的工程,以适应不同的应用需求。其中常用的6种在图中用数字标示出来了。每种创建的工程如下: ①用于创建MFC 动态链接库 ②用于创建MFC的应用程序 ③用于创建SDK的win32应用程序 ④用于创建控制台应用程序 ⑤用于创建win32动态链接库(基于SDK的动态链接库 ) ⑥用于创建win32的静态链接库(基于SDK的静态链接库 ) 我们在学习c语言或c++时,都是创建的控制台应用程序,也就是选择的第4种。现在我们创建一个SDK的win32应用程序,必须选择第三项,也就是图中蓝色的选项。 控制台应用程序和SDK的win32应用程序有什么区别呢? 主要是Microsoft

win32窗口程序分析

蓝咒 提交于 2019-12-11 12:39:42
1.分析消息的附加参数 例如:为了查看程序处理了哪些消息 在回调函数中调用输出函数,在控制台中输出消息的值; 结果:可以看到处理了消息7f、88、31f等消息 例如分析7f消息; 在vc6中可以选中任意一个消息类型宏,按F12进入宏的定义头文件中; 在头文件中找到7f对应的消息宏; 可以看到是WM_GETICON 在msdn中搜索WM_GETICON: 可以查msdn来分析消息的参数; 例如:分析WM_CREATE消息 通过查msdn文档可以看到该消息的wParam没使用,lParam是一个指向CREATESTRUCT结构的指针; 然后分析这个结构,将lparam强转为CREATESTRUCT*型,然后就可以获取到消息带的参数; 2.win32程序入口识别 1)入口函数WinMain int CALLBACK WinMain( //CALLBACK表示__stdcall HINSTANCE hInstance, //相当于imagebase HINSTANCE hPrevInstance, //永远都是NULL不用管 LPSTR lpCmdLine, //命令行启动程序时后面接的参数用这个来读 int nCmdShow //以什么方式显示:最大化、最小化、隐藏 ){ //... } WinMain有4个参数,并且是内平栈; 内平栈的压栈顺序是从右到左

C#无边框窗体移动

混江龙づ霸主 提交于 2019-12-10 17:57:21
拖动无边框窗体 相信大家都有遇到过这个问题,将winform窗体BorderStyle设置为None时,窗体是无法移动的,解决这个问题可以参考下面代码; 首先建立一个Win32类文件 命名空间引用如下: using System . Runtime . InteropServices ; 在类的内部定义如下代码,用来记录Windows消息类型及附加消息: public const int WM_SYSCOMMAND = 0x0112 ; //该变量表示将向Windows发送的消息类型 public const int SC_MOVE = 0xF010 ; //该变量表示发送消息的附加消息 public const int HTCAPTION = 0x0002 ; //该变量表示发送消息的附件消息 在类的内部导入windows系统API函数ReleaseCapture,用来释放被当前线程中某个窗口捕获的光标: //用来释放当前被线程中某个窗口捕获的光标 [ DllImport ( "user32.dll" ) ] public static extern bool ReleaseCapture ( ) ; 在类的内部导入windows系统API函数SendMessage,用来向指定的窗体发生windows消息: //向指定窗体发生windows消息 [ DllImport (

基于OPC协议的上位机PLC通讯 (一)

本小妞迷上赌 提交于 2019-12-10 07:19:26
OPC技术是通常是用于PLC和上位机通讯的一个基于COM的一个通讯组件。比如某个项目是用西门子系列的PLC控制的自动化系统通过西门子的中间件通常会安装S7-200 PC Access 或者SimaticNet的OPC服务端软件。这两个软件的目的就是在上位机的系统中搭建了一个OPC Server并提供访问可以编程实现遵循OPC技术使上位机与PLC通讯的功能。 此外,需要强调一点,OPC并不是西门子的技术,它是一个标准,凡是遵循OPC技术的PLC都能共通过其标准与下位机通讯 。 几个关于OPC的概念: 同步读:在调用OPC的接口函数时实时的将数据(组)通过出口参数传出 同步写:在调用OPC的接口函数时实时的将数据写入寄存器 异步读:调用OPC接口不会直接写入PLC寄存器,而是在注册的回调函数中拿到数据的相关信息 异步写:也是在回调函数中将数据写入 组的概念: 组中可以包含项,是多个项的一个集合 组是和OPC提供的IO接口绑定的,OPC的IO接口是用于读写数据 项的概念: 项其实就是对于了PLC上的对应地址,每种OPC服务器根据厂商不同定义的格式不同 关于封装的类 情况说明(这个类是本人在开发上位机软件与西门子S200系列PLC通信是所编写的 OPC服务器是SimaticNet) 几个疑惑点说明: OPC服务器提供了几个接口的头文件需要在项目中添加 需要加到工程中的文件: opc.h

C/C++中的内置宏定义及跨平台编程随笔

狂风中的少年 提交于 2019-12-07 04:14:49
ANSI C标准中有几个标准预定义宏(也是常用的): __LINE__:在源代码中插入当前源代码行号; __FILE__:在源文件中插入当前源文件名; __DATE__:在源文件中插入当前的编译日期 __TIME__:在源文件中插入当前编译时间; __STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1; __cplusplus:当编写C++程序时该标识符被定义。 其他一些微软的C++编译器内置的宏定义可以参考: http://msdn.microsoft.com/en-us/library/b0084kay(VS.80).aspx 值得一提的是,在MinGW中的g++编译器,实际上也内置了WIN32和_WIN32的宏,这与通常理解的g++编译器用于linux的有些不同,一般不容易想到windows下的g++也会内置WIN32宏,对于编写跨平台的程序就需要注意一下了。 另外,在windows下可以使用 _MSC_VER 这个宏来区分是微软的编译器还是其他种类的编译器。对于使用多种编译器编译程序时使用不同的代码块有用。 来源: oschina 链接: https://my.oschina.net/u/584059/blog/261752

跨平台网络通信与服务器编程框架库(acl库)介绍

百般思念 提交于 2019-12-07 01:10:58
一、描述 acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能 库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、ICMP、memcache、beanstalk),常 见流式编解码库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 等。 1.1、库组成 本工程主要包含 5 个库及大量示例。5 个库的说明如下: 1) lib_acl: 该库是最基础的库,其它 4 个库均依赖于该库; 该库以 C 语言实现。 2) lib_protocol: 该库主要实现了 http 协议及 icmp/ping 协议; 该库以 C 语言实现。 3) lib_acl_cpp: 该库用 C++ 语言封装了 lib_acl/lib_protocol 两个库,同时增加了一些其它有价值的功能应用。 4) lib_dict: 该库主要实现了 KEY-VALUE 的字典式存储库,该库另外还依赖于 BDB, CDB 以及 tokyocabinet 库。 5) lib_tls: 该库封装了 openssl 库,使 lib_acl

Win32 API编程——前言

时光总嘲笑我的痴心妄想 提交于 2019-12-06 22:38:31
一丶什么是Win32 API?   简单来说,就是微软为了保护操作系统的安全稳定,不允许运行在用户层的进程随意操控系统内核,而是必须按照一定方式。就是说我们 用户层要与系统内核层交 互(比如对内存、进程操作),只能通过调用 Windows内核层提供的接口函数,也就是Win32API 来操控。这些API以DLL(动态链接库)的形式保存(一般在SYSTEM32文件夹中,你可以发现大量的DLL),我们最常用的是 kernel32.dll、user32.dll和gdi32.dll 。   所有基于NT内核(包括XP到Win10都是基于NT内核开发)的Windows API都可以称为Win32,即便是64位系统,也用这个名称,因为64位系统是完全兼容32位程序的(32位系统不能完全兼容16位程序),所以你可以看到这些DLL名称都有个"32"的后缀。那我们用C/C++写程序,没用到Win32,怎么也能够执行分配内存,打开进程等操作呢?实际上在Windows系统上的C/C++的运行库内部也是封装了Win32API。进一步说, 所有运行在Windows用户层的程序必须得调用Win32API 。   Windows采用分层结构,大致来说就是 (用户层->内核层->硬件抽象层->硬件层) ,每一层使用下一层提供的借口来与下一层进行交互。我们日常使用的应用程序都是运行在用户层,通过调用内核层提供的接口

hiredis-win32+libevent

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 16:43:23
决定用 redis作为cache服务器 ,要求其服务端和客户端都支持跨平台win和linux 但我发现redis(/作者)对windows态度极差,不考虑,不支持 微软公司的闲人们主动靠过去,推出win版。这么一来,redis的 服务端linux版和win版都有了,我就在我的win7上部署了一个win版的redis服务器做调试用,余不累赘,以后另起课题讨论 客户端用hiredis,其 win版(/往后简称winV)在 https://github.com/texnician/hiredis-win32 原版master(往后简称masterV)在 https://github.com/redis/hiredis 下载来之,解开, 对比 它两: 1、winV的examples.h/c直接和核心代码混在根目录上,组织乱 2、winV全面用预编译宏_WIN32来区分平台代码,另辟代码分别实现各个接口,网络方面的改动最大 3、winV除了新辟的代码,其它的 3.1 winV删除了keepalive的接口 3.2 其它的跟masterV区别不大,有些许改动 确保能编译winV 1、新建目录examples,把examples.h/c全赶进去 2、先不管winV其新辟的代码,把其它的改动,从masterV merge到 winV里 3、建立vc工程hiredis4win.vcxproj/sln

C# Winform 设置窗口打开的特效

廉价感情. 提交于 2019-12-06 04:44:02
原文: C# Winform 设置窗口打开的特效 https://www.cnblogs.com/mq0036/p/6421946.htmlusing System.Runtime.InteropServices;  public class Win32  {   public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口   public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口   public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口   public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口   public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。   public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。   public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW