草庐IT

windows - Win32 : How to crash?

我正在尝试找出Windows错误报告的保存位置;我今天早些时候点击了发送,但我忘记了我想“查看详细信息”以便检查内存小型转储。但我找不到它们的存储位置(谷歌也不知道)。所以我想编写一个会崩溃的虚拟应用程序,显示WER对话框,让我单击“查看详细信息”以便我可以到达保存转储的文件夹。我怎么会在Windows上崩溃?编辑:我问的原因是因为我试过堆栈溢出和float除以零。StackOverflow使应用程序消失,但没有弹出WER对话框。float除以零导致+INF,但没有异常,也没有崩溃。 最佳答案 你们太啰嗦了!:-)这是一个简洁的方法

c++ - 在创建线程时无法理解此错误

HANDLEhThread;DWORDdwThreadId;hThread=CreateThread(NULL,//defaultsecurityattributes0,//usedefaultstacksizeMyThreadFunction,//threadfunctionname0,//argumenttothreadfunction0,//usedefaultcreationflags&dwThreadId);//returnsthethreadidentifier错误指定了第三个参数,但是当我双击错误时它会将我带到最后一个参数?尝试运行msdnCreateThread示例ht

c# - 我需要查看哪些 API 来编写我自己的 Windows 驱动器号

我想把我自己的文件系统代码弄乱,作为一种学习练习。首先可以是RAM驱动器,或者只是安装在另一个驱动器上的文件中。问题:我需要编写哪些WindowsAPI来实现我自己的驱动器盘符(例如我的系统中的M:)这些API的文档在哪里?你能用C#实现它们吗?注意:我知道还有其他Ram驱动器实现-我不需要它们的列表。我试过谷歌搜索,但发现很难找到合适的搜索词。我现在不关心哪个版本的Windows,任何版本都可以,因为我正在使用Windows7进行开发,但我希望早期Windows的版本仍然可以工作 最佳答案 看看IFS(InstallableFil

c++ - 进程 ID 和进程名称

我正在创建一个基本上扫描系统以查看特定进程是否正在运行的Windows程序。我有进程名称(AcroRd32.exe),没有别的。据我所知,最简单的方法是使用CreateToolhelp32Snapshot创建所有进程的快照,然后遍历每个进程以查找进程名称。我的应用程序以高性能为中心。那么有没有更好更有效的方法来做到这一点。应用程序每隔几秒收集一次快照。在快照中迭代100个进程似乎效率不高。是否有直接的API可以通过进程名称找到进程(并通过名称检索进程句柄或ID)?我进行了广泛的搜索,但运气不佳。有人试过这个吗? 最佳答案 扫描进程的

c++ - 如何保护两个进程之间共享内存中的字符串?

我有一block共享内存,其中包含两个进程之间的一个char字符串和一个整数。进程A写入它,进程B读取它(反之亦然)确保进程A不会在进程B正在读取它的同时更新(写入)它的最有效方法是什么?(我应该只在共享内存中使用标志,使用信号量,临界区....)如果您能指出正确的方向,我将不胜感激。谢谢。Windows,C++ 最佳答案 您不能使用CriticalSection因为这些只能用于同一进程内线程之间的同步。对于进程间同步,您需要使用Mutex或Semaphore.两者的区别在于前者只允许一个线程拥有一个资源,而后者最多允许一个最大数目

可以仅使用 C 来利用 Windows API 吗?

我正在自学C(来自Java)。我非常欣赏这门语言,我学习它的主要原因之一是我可以利用Java内置的JNI功能在必要时编写native代码。我的问题主要是关于WindowsAPI。我可以仅使用C来使用API的功能和特性吗?WindowsAPI是否与纯C代码兼容,或者它是否包含只能由C++代码使用的类等?此外,如果我在Windows机器上将共享库编译为(lib.slNOTlib.dll),它可以在另一台机器(Mac/Linux)上运行吗? 最佳答案 WindowsAPI(又名Win32API)是一个纯C库。不可以,你不能在另一台非Win

windows - 同步使用 GetWindowText

我不太明白GetWindowText如何在与调用者相同的线程上为窗口工作。如果GetWindowText阻塞直到消息被处理,线程如何调用DispatchMessage?它已在GetWindowText中被阻止。这是否意味着GetWindowText必须始终从与操作消息循环的线程不同的线程调用? 最佳答案 GetWindowText只是SendMessage(WM_GETTEXT)的薄包装。发送到窗口的消息总是在创建窗口的线程中处理(窗口具有“线程关联”)。发送消息不经过DispatchMessage,而是GetMessage(或Pe

c++ - 组框外观

我使用的是VisualStudio2008专业版。我在对话框编辑器中设计了以下对话框:请密切注意名为“任务”的对话框中的组框。它在这里看起来不错,但是当我将它显示为应用程序中的无模式对话框时,该GroupBox的外观和感觉突然变为-:突然之间,对话框编辑器中指定的原始蓝色标题和圆角边缘消失了,取而代之的是黑色前景和方形边缘。我想知道为什么会突然发生这种情况,我希望它以对话框编辑器中指定的外观显示。以下代码存在于我的对话框资源文件(Timer.rc)中:IDD_FORMVIEWDIALOGEX0,0,204,118STYLEDS_ABSALIGN|DS_SETFONT|DS_SETFOR

windows - "TCHAR cFileName[MAX_PATH];"- MSDN 库中的错误?

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365740%28v=vs.85%29.aspxcFileNameThenameofthefile.MAX_PATH的值与几乎与_MAX_FNAME相同,但在这种情况下使用第一个会产生误导。无论如何,如果他们指的是带有名称的完整路径,它应该是cFileName[MAX_PATH+_MAX_FNAME];吗?使用MAX_PATH的目的是什么? 最佳答案 MAX_PATH常量表示整个路径的最大长度,包括文件名和扩展名。它是

C++ 窗口父子

所以我创建了一个父窗口,然后使用CreateWindowEx创建了一个子窗口。现在,当我创建子窗口时,我给它设置了WS_POPUP样式。MSDN说:WS_POPUP0x80000000L窗口是一个弹出窗口。此样式不能与WS_CHILD样式一起使用。该窗口是一个弹出窗口,并且是我的其他窗口的子窗口。我想我对WS_CHILD样式的用途感到困惑,因为我仍然可以使我的弹出窗口成为另一个窗口的子窗口? 最佳答案 具有WS_CHILD样式的窗口必须位于其父级的边界内。具有WS_POPUP样式的窗口则不会,而且在调用GetParent()时返回所