【发布时间】:2018-07-29 18:55:25
【问题描述】:
让我们从背景开始。我需要为 ODBC 命令设置一串属性:
SQLConfigDataSource(hwndParent, ODBC_ADD_DSN, sDriver, wcAttrs);
属性必须以严格的方式格式化才能起作用:
LPCWSTR wcAttrs = L"DSN=NiceDB\0DBQ=C:\\Users\\who\\AppData\\Local\\NiceApp\\niceDB.accdb\0";
以这种方式对其进行硬编码是可行的,但我实际上需要动态设置 accdb 文件 (DBQ) 的路径。问题是分隔字符串中的属性所需的空字符,而我主要使用 wcscat_s 的 string-fu 技能失败了,因为空字符会使任何东西在它之后消失。
用中间的空字符组装/连接字符串的最佳技术是什么?
【问题讨论】:
-
std::string 完全支持嵌入的空(或任何其他)字符。
-
这个问题是windows独有的吗?
-
你是问这个问题的人,不是我,所以你应该知道。 std::string 的特性是标准化的。
-
是的,但是有人添加了 windows 标签。虽然 ODBC 与 Windows 相关联,但我只是出于说明目的提及它,而不是主要主题。