大家帮我看看C++的结构代码,红色的是什么意思?

newkakarott 2011-07-29 03:57:05

#ifndef __RPCASYNC_H__
#define __RPCASYNC_H__

#if _MSC_VER > 1000
#pragma once
#endif

#if defined(__RPC_WIN64__)
#include <pshpack8.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

#define RPC_ASYNC_VERSION_1_0 sizeof(RPC_ASYNC_STATE)

typedef
enum _RPC_NOTIFICATION_TYPES
{
RpcNotificationTypeNone,
RpcNotificationTypeEvent,
RpcNotificationTypeApc,
RpcNotificationTypeIoc,
RpcNotificationTypeHwnd,
RpcNotificationTypeCallback
} RPC_NOTIFICATION_TYPES;

typedef
enum _RPC_ASYNC_EVENT {
RpcCallComplete,
RpcSendComplete,
RpcReceiveComplete
} RPC_ASYNC_EVENT;

struct _RPC_ASYNC_STATE;

typedef void RPC_ENTRY
RPCNOTIFICATION_ROUTINE (
struct _RPC_ASYNC_STATE *pAsync,
void *Context,
RPC_ASYNC_EVENT Event);
typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE;

typedef struct _RPC_ASYNC_STATE {
unsigned int Size; // size of this structure
unsigned long Signature;
long Lock;
unsigned long Flags;
void *StubInfo;
void *UserInfo;
void *RuntimeInfo;
RPC_ASYNC_EVENT Event;

RPC_NOTIFICATION_TYPES NotificationType;
union {
//
// Notification by APC
//
struct {
PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
HANDLE hThread;
} APC;

//
// Notification by IO completion port
//
struct {
HANDLE hIOPort;
DWORD dwNumberOfBytesTransferred;
DWORD_PTR dwCompletionKey;
LPOVERLAPPED lpOverlapped;
} IOC;

//
// Notification by window message
//
struct {
HWND hWnd;
UINT Msg;
} HWND;


//
// Notification by event
//
HANDLE hEvent;



struct {
HWND hWnd;
UINT Msg;
} HWND;

...全文
467 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
newkakarott 2011-08-01
  • 打赏
  • 举报
回复
哦。 这个是C++的代码。贴成了C#的代码。
谢谢楼上的各位了。
taodm 2011-07-29
  • 打赏
  • 举报
回复
类型可以和变量同名的,没啥可奇怪的。
sbqjhipr 2011-07-29
  • 打赏
  • 举报
回复
在数据结构链表里经常要这么做只是是指,反正就是用结构体本身定义变量.
sbqjhipr 2011-07-29
  • 打赏
  • 举报
回复
就是用结构体给自已定义一个变量
sbqjhipr 2011-07-29
  • 打赏
  • 举报
回复
struct {
HWND hWnd;//一个结构内的变量名
UINT Msg;
} HWND;//结构体本身也要一个名,就是这个啦
品茶 2011-07-29
  • 打赏
  • 举报
回复
就是给窗口句柄绑定了消息(添加了一个消息属性)

单例模式的特殊应用
newkakarott 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 magisu 的回复:]
引用 9 楼 babilife 的回复:

struct {
HWND hWnd;//定义一个句柄对象hWnd
UINT Msg; //定义一个消息Msg
} HWND;

这样定义属于嵌套定义了吧,会出错的


在C++里面显然出错了
[/Quote]

我明确的告诉你,这个是不会出错的。这个软件已经用了8年了,要是出错就怪了。
求高人指点。
jeffed 2011-07-29
  • 打赏
  • 举报
回复
工程的win32\debug目录下找找
xiaoguangzaia 2011-07-29
  • 打赏
  • 举报
回复
结构里面只能有自身的引用或指针
MagiSu 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 babilife 的回复:]

struct {
HWND hWnd;//定义一个句柄对象hWnd
UINT Msg; //定义一个消息Msg
} HWND;

这样定义属于嵌套定义了吧,会出错的
[/Quote]

在C++里面显然出错了
至善者善之敌 2011-07-29
  • 打赏
  • 举报
回复
struct {
HWND hWnd;//定义一个句柄对象hWnd
UINT Msg; //定义一个消息Msg
} HWND;

这样定义属于嵌套定义了吧,会出错的
ningto.com 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 newkakarott 的回复:]

还有个问题。就是XX.cpp 库文件编译生成之后,生成的DLL在哪里找啊?
PS:我不会C++,因为目前做的涉及到了,不得不学习。目前仅仅限于看的懂大部分的代码。
动手就算了。完全不会。
[/Quote]
工程的Debug或者Release目录下面
ningto.com 2011-07-29
  • 打赏
  • 举报
回复
就字面意思,里面的HWND是一个类型, 外面的是变量,至于能不能这样用就不知道了
newkakarott 2011-07-29
  • 打赏
  • 举报
回复
还有个问题。就是XX.cpp 库文件编译生成之后,生成的DLL在哪里找啊?
PS:我不会C++,因为目前做的涉及到了,不得不学习。目前仅仅限于看的懂大部分的代码。
动手就算了。完全不会。
shiyunqiang 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ouyh12345 的回复:]

名字怎么一样呢?
[/Quote]

同问
ningto.com 2011-07-29
  • 打赏
  • 举报
回复
定义一个结构类型的变量HWND, 可以拿着HWND直接用
newkakarott 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ouyh12345 的回复:]
名字怎么一样呢?
[/Quote]
我就是问这个结构是个什么意思啊?

谢谢高人指点啊
ouyh12345 2011-07-29
  • 打赏
  • 举报
回复
名字怎么一样呢?
Michael_Xie 2011-07-29
  • 打赏
  • 举报
回复
不就是定义一个结构体吗?

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧