实现OutputDebugString输出调试消息
传递消息的结构体:
struct dbwin_buffer
{DWORD dwProcessId;char data[4096 - sizeof(DWORD)];
};
具体实现,直接艹代码:
void my_outputdebugstring_ansci(const char *msg)
{HANDLE mutex = CreateMutexW(NULL, FALSE, L"DBWinMutex");DWORD err = GetLastError();if (mutex){err = WaitForSingleObject(mutex, INFINITE);}HANDLE file_mapping = OpenFileMappingW(FILE_MAP_WRITE, FALSE, L"DBWIN_BUFFER");if (file_mapping){PBYTE data = (PBYTE)MapViewOfFile(file_mapping, FILE_MAP_WRITE, 0, 0, 0);if (data){HANDLE event_buffer = OpenEventW(SYNCHRONIZE, FALSE, L"DBWIN_BUFFER_READY");if (event_buffer){WaitForSingleObject(event_buffer, 10000);}struct dbwin_buffer *dbw_buffer = (struct dbwin_buffer *)data;dbw_buffer->dwProcessId = GetCurrentProcessId();memcpy(dbw_buffer->data, msg, strlen(msg));dbw_buffer->data[strlen(msg)] = '\0';HANDLE event_data = OpenEventW(EVENT_MODIFY_STATE, FALSE, L"DBWIN_DATA_READY");if (event_data){SetEvent(event_data);}UnmapViewOfFile(data);CloseHandle(event_buffer);CloseHandle(event_data);}CloseHandle(file_mapping);}ReleaseMutex(mutex);return ;
}
实现OutputDebugString输出调试消息相关推荐
- OutputDebugString输出调试信息
OutputDebugString输出调试信息 声明 <windows.h>文件声明了 OutputDebugString() 函数的两个版本:一个用于 ASCII,一个用于 Unicod ...
- 使用OutputDebugString输出调试信息
概要: 在编写控制台程序的时候我们经常会使用printf输出调试信息,使我们了解程序的状态,方便调试,但是当编写非控制台程序的时候这种方法就行不通了.可以使用以下方法: (1)使用Log机制 (2)用 ...
- QT 调用vs写的dll 使用OutputDebugString输出调试信息
vs c++写的dll中使用的cout 将调试信息写到控制台中,但qt调用dll时,cout内容没有办法显示了. 解决办法:使用OutputDebugStringA char buf[128];spr ...
- 使用OutputDebugString做调试输出
昨天发现服务器通讯并发有问题,所以希望在通讯层增加写调试信息输出来看看.当时首先想到的是用一般经常使用的Codesite,但把调试代码增加到通讯单元后,编译居然跑不起来了,一跟踪才发现,原来是Code ...
- C++ 输出调试信息 类似MFC的TRACE等宏
在MFC程序中有TRACE等一系列的宏可以输出调试信息, 但是其他的地方不能用了, 下面这个小程序测试了怎么输出调试信息, // Test_ErrorCode.cpp : 定义控制台应用程序的入口点. ...
- 使用OutputDebugString帮助调试
使用OutputDebugString帮助调试 前面我已经介绍了使用TRACE来帮助我们调试,但使用TRACE有一个限制,只能在将程序DEBUG编译状态下才能使用,下面我们介绍OutputDebugS ...
- DebugView输出调试信息
在写windows程序时,需要输出一些调试信息,这里介绍一种极其方便的方法.即使用OutputDebugString 在Debug模式下输出调试信息,在Release模式下不输出. 我们可以在VS的集 ...
- 在MFC,Win32程序中向控制台(Console)窗口输出调试信息
在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...
- Jlink 使用 RTT 输出调试信息总结
一天的突然消息,听说Jlink 可以仅仅使用自身就可以输出调试信息,不在使用多余的其他UART 外界接口,所以就花了3天时间折腾了下(网上搜索,使用很简单,但是自己去使用三天才正常输出,踩了不少坑,所 ...
最新文章
- CallByName的一些缺陷
- 短视频未来3年的规模为3万亿元
- 每周「Paper + Code」清单:句子嵌入,文本表示,图像风格转换
- 代码单元测试:gtest
- 前端学习(2784):首页轮播图的渲染
- JavaScript的求模、取整、小数的取舍
- Android TV 开发(5)
- Java高并发之设计模式,设计思想!
- java 当天日期 dateutil_Java时间日期DateUtil
- 吉他 c大调第一把位
- 如何给pdf添加目录
- ANSYS CFX19.0中的SA模型设置
- 关于TLC2543不常见问题
- 关于深度学习人工智能模型的探讨(四)(6)
- pageX,clientX,screenX,offsetX区别
- 申请Oracle Cloud永久免费主机服务
- 易语言源码利用QQ CK批量导入登录京东/京喜账号,进行登录
- 吴金贵有望二次助教国足 成顶替刘春明热门人选
- ERP和SAP的一些名词解释
- 微软校招面试题3-15