gpt4 book ai didi

c++ - 如何从 C++ 控制台应用程序使用 shell32.dll

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:16:29 30 4
gpt4 key购买 nike

我需要做的是获取 ApplicationData 路径,我在 Google 中发现有一个名为

的函数
HRESULT SHGetFolderPath(
__in HWND hwndOwner,
__in int nFolder,
__in HANDLE hToken,
__in DWORD dwFlags,
__out LPTSTR pszPath
);

但是它存在于shell32.dll中在 C# 中,我会做类似

的事情
[DllImport]
static extern HRESULT SHGetFolderPath() and so on.

我需要在 C++ 控制台应用程序中做什么才能调用此 API?也许,我可以使用 LoadLibrary()?但是这样做的正确方法是什么?

我能否以某种方式静态链接此 dll 使其成为我的 exe 的一部分?我正在使用 Visual Studio 2010。

最佳答案

您需要 #include shlobj.h 并链接到 shell32.lib。像这样:

#include "stdafx.h"
#include <windows.h>
#include <shlobj.h>
#include <assert.h>
#pragma comment(lib, "shell32.lib")

int _tmain(int argc, _TCHAR* argv[])
{
TCHAR path[MAX_PATH];
HRESULT hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, path);
assert(SUCCEEDED(hr));
// etc..
return 0;
}

#pragma 注释负责将其告知链接器。

关于c++ - 如何从 C++ 控制台应用程序使用 shell32.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9863674/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com