标签: wstring

如何使用C++中的ascii字符代码创建std :: wstring?

我需要使用具有以下ascii值的字符创建一个wstring:30,29,28,27,26,25.

在VB6中,我会做asc(30)+ asc(29)+等...

什么是C++等价物?

谢谢!

c++ string ascii wstring

1
推荐指数
1
解决办法
1602
查看次数

涉及iostream和wstring的奇怪的C++行为

我有两个文件,my_program.cpp它的标题my_program.h.

my_program.cpp包含这个:

#include "my_program.h"
using namespace std;
Run Code Online (Sandbox Code Playgroud)

my_program.h包含指向返回a的函数的指针wstring,如下所示:

using namespace std;
typedef wstring (*my_function)(wstring, int, int, int, int);
Run Code Online (Sandbox Code Playgroud)

程序不会在这种状态下编译(在typedef处停止...说ISO C++禁止声明'wstring'没有类型),但如果我#include <iostream>之前#include "my_program.h"在.cpp文件中添加,程序会奇迹般地编译.

为什么会这样?我只是希望我没有犯下愚蠢的错误,现在我会被嘲笑.

c++ iostream wstring

1
推荐指数
1
解决办法
405
查看次数

C++使用wstring/wchar_t

很多时候,当我与人交谈时,他们正在重新使用(在DLL项目中)wstrings和字符串,因为它们比wchar_t数组消耗更多内存.怎么样?L"qweqweqweqweqwe"wchar_t数组是否需要比wstring更多的内存,或者它是不明显的?当我必须在Ansi和Unicode(很多new wchar_t tempdelete)之间进行转换时,我有点困惑

c++ string wchar-t wstring

1
推荐指数
1
解决办法
817
查看次数

C++ lpcwstr到wstring

我想在C++(VS 2010)中将LPCWSTR转换为wstring.我想在OutputDebugStringW()中使用它.

谢谢.

c++ wstring lpcwstr

1
推荐指数
1
解决办法
5899
查看次数

如何使用字符串的值将字符串转换为wstring?

我是C++的新手,我遇到了这个问题.我有一个名为DATA_DIR的字符串,我需要将格式化为wstring.

string str = DATA_DIR;
std::wstring temp(L"%s",str); 
Run Code Online (Sandbox Code Playgroud)

Visual Studio告诉我没有与参数列表匹配的构造函数实例.显然,我做错了什么.

我在网上找到了这个例子

std::wstring someText( L"hello world!" );
Run Code Online (Sandbox Code Playgroud)

这显然有效(没有编译错误).我的问题是,如何将存储在DATA_DIR中的字符串值放入wstring构造函数中,而不是像"hello world"这样的任意内容?

c++ string wstring

1
推荐指数
2
解决办法
3437
查看次数

wcout << L中的L是多少?

有什么区别

std::wcout << "some text" ;
Run Code Online (Sandbox Code Playgroud)

std::wcout <<L "some text";
Run Code Online (Sandbox Code Playgroud)

我找不到有关L用途的信息.

c++ unicode cout wstring

1
推荐指数
1
解决办法
859
查看次数

从 C# 调用 wstring C++ 方法

我正在使用 C# 代码,需要在 C++ dll 中调用此方法。

static std::wstring DecryptData(const std::wstring& strKey);
Run Code Online (Sandbox Code Playgroud)

我读过很多东西,我最好的猜测是传递一些对于两种语言都更容易阅读的东西,比如字符数组甚至字节数组,然后在 C++ 中构建 wstring,然后在 C# 中构建字符串。

有人已经这样做了吗?

编辑:

我阅读了链接主题,但没有一个答案对我有帮助:使用const没有帮助。

这就是我现在拥有的:C#

 [DllImport(DLL_PATH, CharSet = CharSet.Unicode)]
        [return: MarshalAs(UnmanagedType.LPWStr)]
        public static extern string DecryptData([MarshalAs(UnmanagedType.LPWStr)]string strKey);
Run Code Online (Sandbox Code Playgroud)

C++

extern "C" __declspec(dllexport) const std::wstring DecryptData(const std::wstring& strKey) {
    return WlanHelper::CWirelessHelper::DecryptData(strKey);
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个 PInvokeStackImbalance =/

c# c++ wstring

1
推荐指数
1
解决办法
5391
查看次数

UTF8 数据到 std::string 或 std::wstring

我从 HTTP 服务器响应接收正文字节,但我不知道如何将它们转换为 UTF8 字符串以使用它们。

我有一个想法,但我不确定它是否有效。我需要获取响应的字节并搜索它们并修改它们,因此我需要将std::vector<BYTE>tostd::wstringstd::string.

响应的 UTF8 字节编码在 my 中std::vector<BYTE>,如何将它们转换为std::string?我要不要把它们转换成std::wstring?。

我找到了这个代码:

std::string Encoding::StringToUtf8(const std::string& str)
{
INT size = MultiByteToWideChar(CP_ACP, MB_COMPOSITE, str.c_str(), str.length(), NULL, 0);

std::wstring utf16_str(size, '\0');

MultiByteToWideChar(CP_ACP, MB_COMPOSITE, str.c_str(), str.length(), &utf16_str[0], size);

INT utf8_size = WideCharToMultiByte(CP_UTF8, 0, utf16_str.c_str(), utf16_str.length(), NULL, 0, NULL, NULL);

std::string utf8_str(utf8_size, '\0');

WideCharToMultiByte(CP_UTF8, 0, utf16_str.c_str(), utf16_str.length(), &utf8_str[0], utf8_size, NULL, NULL);

return utf8_str;
Run Code Online (Sandbox Code Playgroud)

}

但是现在,如果我想在字符串中搜索像“Ñ”这样的字符会起作用吗?,或者我是否要转换 a 中的字节std::wstring并搜索“Ñ”修改std::wstring并将其转换为std::string …

c++ string encoding std wstring

1
推荐指数
1
解决办法
4406
查看次数

将 char* argv[] 转换为 wstring

我怎样才能转换char* argv[]wstring?我用来"/d"获取字符串路径argv并将其作为函数的参数插入ArrayOfDirContents

int main(int argc, char *argv[])
{
    double minimum = 10;
    double input;
    char* filename;
    wstring adr(L".");
    const wchar_t* adresar; 

    adresar = adr.c_str();

    char *p;

    int num;


    errno = 0;
    long conv;

    for (unsigned i = 1; i < argc; i++) {   
        conv = strtol(argv[i], &p, 10);

        // Check for errors: e.g., the string does not represent an integer
        // or the integer is larger than int
        if (errno …
Run Code Online (Sandbox Code Playgroud)

c++ wchar-t wstring

0
推荐指数
1
解决办法
3420
查看次数

带有宽字符串的 C++ {fmt} fmt::vformat 和 fmt::make_wformat_args 无法编译

这段代码无法编译。(error: no matching function for call to 'vformat(std::wstring&, fmt::v10::format_arg_store<fmt::v10::basic_format_context<std::back_insert_iterator<fmt::v10::detail::buffer<wchar_t> >, wchar_t>, int>)')

#include <fmt/xchar.h>
#include <string>
#include <iostream>

int main() {
    int arg_1 = 12;
    std::wstring format = L"Hello {}";
    std::wstring test = fmt::vformat(format, fmt::make_wformat_args(arg_1));
    std::wcout << test;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,这段代码可以成功编译。

#include <fmt/xchar.h>
#include <string>
#include <iostream>

int main() {
    int arg_1 = 12;
    std::string format = "Hello {}";
    std::string test = fmt::vformat(format, fmt::make_format_args(arg_1));
    std::cout << test;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 {fmt} 10.0.0 并包括 xchar.h,它的fmt::format工作原理与我对宽字符串的预期一样,看来我只使用fmt::vformat …

c++ wstring fmt

0
推荐指数
1
解决办法
661
查看次数

标签 统计

c++ ×10

wstring ×10

string ×4

wchar-t ×2

ascii ×1

c# ×1

cout ×1

encoding ×1

fmt ×1

iostream ×1

lpcwstr ×1

std ×1

unicode ×1