【问题标题】:Converting tchar[] to LPCWSTR将 tchar[] 转换为 LPCWSTR
【发布时间】:2011-11-13 18:57:18
【问题描述】:

我正在使用 FindFirstFile 遍历目录来搜索 dll。

当我获取 dll 时,我使用 WIN32_FIND_DATA 结构的 cfilename 来获取该 dll 的名称。

现在,我想将 dll 传递给 LoadLibrary() 函数,该函数期望 dll 的绝对路径。

这是问题: WIN32_FIND_DATA结构的cfilename返回一个TCHAR[]数组,它只是dll的名字,不是它的路径。我应该将路径连接到名称以获得绝对路径。

LoadLibrary() 需要一个 LPCWSTR 作为参数。

我需要帮助: (1) 将 WIN32_FIND_DATA 的 cfilename 返回的 TCHAR[] 转换为 LPCWSTR (2) 将上述转换后的LPCWSTR与预定义的路径(L"C:\dir\example\")拼接得到绝对路径。

任何对正确答案的推动都会让我开心:)

问候, 安迪

【问题讨论】:

    标签: visual-c++ string-concatenation wchar-t tchar string-conversion


    【解决方案1】:

    实际上,LoadLibrary 需要一个 LPCTSTR,所以问题 1 不再是问题。问题 2 是简单的字符串连接。

    【讨论】:

    • 对不起,我是菜鸟,我是 C++ 世界的新手。连接 tchar[] 和 LPCWSTR 的最佳方法是什么?此外,我在我的应用程序中声明了 UNICODE,因此当我编写 LoadLibrary 时,智能感知要求提供 LPCWSTR。
    • 如果用UNICODE编译,那么tchar就和WCHAR一样。所以没有什么可以转换的。 (如果不使用 UNICODE 进行编译,则 tchar 与 char 相同,intellisense 会说 LoadLibrary 采用 LPCSTR,所以再次,无需转换。)
    • @Raymond- 谢谢。将它们连接成一个的最佳方法是什么?
    • 您要求的只是轻推,所以我轻推了您。您可以自己研究字符串连接。
    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2011-08-11
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多