鉴于某些注册表值的关键(例如HKEY_LOCAL_MACHINE\blah\blah\blah\foo)我该如何:
我绝对没有打算将任何东西写回注册表(如果我可以提供帮助的话,我的职业生涯期间).因此,如果我错误地写入注册表,我们可以跳过关于我体内每个分子以光速爆炸的讲座.
首选C++中的答案,但大多只需要知道特殊的Windows API咒语是什么.
首先,究竟是什么?我猜它是一个指针(LPC意味着长指针常量),但"W"是什么意思?它是指向字符串的特定指针还是指向特定字符串的指针?例如,我想关闭一个名为"TestWindow"的窗口.
HWND g_hTest;
LPCWSTR a;
*a = ("TestWindow");
g_hTest = FindWindowEx(NULL, NULL, NULL, a);
DestroyWindow(g_hTest);
Run Code Online (Sandbox Code Playgroud)
代码是非法的,它不起作用,因为const char [6]无法转换为CONST WCHAR.我根本得不到它.我想清楚地了解所有这些LPCWSTR,LPCSTR,LPSTR.我试图找到一些东西,但我更加困惑.在msdn网站FindWindowEx被声明为
HWND FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
Run Code Online (Sandbox Code Playgroud)
所以最后一个参数是LPCSTR,编译器要求LPCWSTR.请帮忙.
有没有一种简单的方法来测试您的命名管道是否正常工作?我想确保我从我的应用程序发送的数据实际上是发送的.是否有一种快速简便的方法来获取所有命名管道的列表?
我得到了一些由恶意软件创建的文件夹,其名称以点C:\a.\或C:\b.\等等结尾.
我找到了一个可以用命令删除这个文件夹的解决方案,rd /q /s "C:\a.\"但如果我调用win API RemoveDirectory,它会返回ERROR_FILE_NOT_FOUND.
我只是想知道如何写一个函数来删除这样的目录,谢谢
我在我自己的Windows XP SP3系统上进行测试
创建一个文件夹C:\>mkdir a..\\\,我无法双击访问此文件夹.我可以用命令删除 rd /q /s "C:\a.\"
rd /q /s命令调用的Windows系统API是什么?
有很多方法在Windows环境中分配内存,如VirtualAlloc,HeapAlloc,malloc,new.
那么,它们之间的区别是什么?
我正在查看.dll文件,我了解它们的用法,我正在尝试了解如何使用它们.
我创建了一个.dll文件,其中包含一个返回名为funci()的整数的函数
使用此代码,我(想)我已将.dll文件导入项目(没有投诉):
#include <windows.h>
#include <iostream>
int main() {
HINSTANCE hGetProcIDDLL = LoadLibrary("C:\\Documents and Settings\\User\\Desktop \\fgfdg\\dgdg\\test.dll");
if (hGetProcIDDLL == NULL) {
std::cout << "cannot locate the .dll file" << std::endl;
} else {
std::cout << "it has been called" << std::endl;
return -1;
}
int a = funci();
return a;
}
# funci function
int funci() {
return 40;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试编译我认为已导入.dll的.cpp文件时,我遇到以下错误:
C:\Documents and Settings\User\Desktop\fgfdg\onemore.cpp||In function 'int main()':|
C:\Documents and Settings\User\Desktop\fgfdg\onemore.cpp|16|error: 'funci' was not declared in this scope|
||=== Build …Run Code Online (Sandbox Code Playgroud) 这更像是一个理论问题。我是 Comp sci 专业,对低级编程非常感兴趣。我喜欢了解引擎盖下的工作原理。我的专长是编译器设计。
无论如何,当我正在开发我的第一个编译器时,我遇到了一些令人困惑的事情。
当您用 C/C++ 编写程序时,人们知道的传统事情是,编译器神奇地将您的 C/C++ 代码转换为该机器的本机代码。
但有些事情并没有在这里加起来。如果我针对 x86 架构编译我的 C/C++ 程序,那么相同的程序似乎应该在具有相同架构的任何计算机上运行。但这不会发生。您需要为 OS X 或 Linux 或 Windows 重新编译您的代码。(再次为 32 位与 64 位)
我只是想知道为什么会这样?我们在编译 C/C++ 程序时不是针对 CPU 架构/指令集吗?Mac 操作系统和 Windows 操作系统可以在完全相同的架构上运行。
(我知道 Java 和类似的目标是 VM 或 CLR,所以这些不算数)
如果我对此给出了最佳答案,我会说 C/C++ 必须编译为特定于操作系统的指令。但是我读到的每个来源都说编译器针对机器。所以我很困惑。
如何在Windows中列出物理磁盘?为了获得"\\\\.\PhysicalDrive0"可用的列表.
我知道我需要使用LoadLibrary().但是,为了使用第三方DLL文件,我需要采取哪些其他步骤?
我只是跳进了C++,这是我唯一没有得到的部分(作为Java程序员).我只是在研究如何使用Qt库和tesseract-ocr,但这个过程对我来说没有任何意义,谷歌也很难.
如何告诉编译器我正在使用的函数?是否应该有来自第三方供应商的包含文件?
发送消息和发布消息(纯Windows编程方面)之间的区别是什么以及它们与C#,WPF和Pure Windows编程有何关系?
我是新线程和所有相关的东西所以请原谅我明显的问题.我需要挖掘线程的外部..请让我知道帮助我从win32编程到WPF构建我的概念的链接.
我需要理解从Post消息到Afx(调用以启动一个新线程)将Invok/Begin Invoke委托给Dispatcher.