标签: winapi

如何从Windows注册表中读取值

鉴于某些注册表值的关键(例如HKEY_LOCAL_MACHINE\blah\blah\blah\foo)我该如何:

  1. 安全地确定存在这样的密钥.
  2. 以编程方式(即使用代码)获取其值.

我绝对没有打算将任何东西写回注册表(如果我可以提供帮助的话,我的职业生涯期间).因此,如果我错误地写入注册表,我们可以跳过关于我体内每个分子以光速爆炸的讲座.

首选C++中的答案,但大多只需要知道特殊的Windows API咒语是什么.

c++ windows registry winapi

81
推荐指数
4
解决办法
13万
查看次数

LPCWSTR代表什么,应如何处理?

首先,究竟是什么?我猜它是一个指针(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++ winapi lpcstr

79
推荐指数
3
解决办法
13万
查看次数

如何在Windows中获取所有打开的命名管道列表?

有没有一种简单的方法来测试您的命名管道是否正常工作?我想确保我从我的应用程序发送的数据实际上是发送的.是否有一种快速简便的方法来获取所有命名管道的列表?

windows winapi pipe

78
推荐指数
8
解决办法
9万
查看次数

如何删除名称以点(".")结尾的文件夹?

我得到了一些由恶意软件创建的文件夹,其名称以点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 file-io winapi

78
推荐指数
8
解决办法
5万
查看次数

VirtualAlloc和HeapAlloc之间有什么区别?

有很多方法在Windows环境中分配内存,如VirtualAlloc,HeapAlloc,malloc,new.

那么,它们之间的区别是什么?

memory heap winapi new-operator

77
推荐指数
5
解决办法
4万
查看次数

从DLL动态加载函数

我正在查看.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)

c++ dll winapi

77
推荐指数
2
解决办法
17万
查看次数

为什么需要为每个操作系统重新编译 C/C++?

这更像是一个理论问题。我是 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++ 必须编译为特定于操作系统的指令。但是我读到的每个来源都说编译器针对机器。所以我很困惑。

c c++ winapi compilation

71
推荐指数
5
解决办法
4415
查看次数

如何列出物理磁盘?

如何在Windows中列出物理磁盘?为了获得"\\\\.\PhysicalDrive0"可用的列表.

c windows winapi hard-drive

70
推荐指数
9
解决办法
16万
查看次数

如何在Visual Studio C++中使用第三方DLL文件?

我知道我需要使用LoadLibrary().但是,为了使用第三方DLL文件,我需要采取哪些其他步骤?

我只是跳进了C++,这是我唯一没有得到的部分(作为Java程序员).我只是在研究如何使用Qt库和tesseract-ocr,但这个过程对我来说没有任何意义,谷歌也很难.

如何告诉编译器我正在使用的函数?是否应该有来自第三方供应商的包含文件?

c++ dll winapi visual-studio

69
推荐指数
4
解决办法
19万
查看次数

发送消息和发布消息之间有什么区别以及它们与C#,WPF和Pure Windows编程有何关系?

发送消息和发布消息(纯Windows编程方面)之间的区别是什么以及它们与C#,WPF和Pure Windows编程有何关系?

我是新线程和所有相关的东西所以请原谅我明显的问题.我需要挖掘线程的外部..请让我知道帮助我从win32编程到WPF构建我的概念的链接.

我需要理解从Post消息到Afx(调用以启动一个新线程)将Invok/Begin Invoke委托给Dispatcher.

c# wpf winapi

69
推荐指数
1
解决办法
5万
查看次数

标签 统计

winapi ×10

c++ ×5

windows ×4

c ×2

dll ×2

c# ×1

compilation ×1

file-io ×1

hard-drive ×1

heap ×1

lpcstr ×1

memory ×1

new-operator ×1

pipe ×1

registry ×1

visual-studio ×1

wpf ×1