将char *转换为字符串文字

时间:2012-06-02 04:18:45

标签: c++ pragma string-literals

我想使用带有#pragma消息的char *来告诉我在Visual Studio调试器中的问题。

void OutputShaderErrors(const char *filename)
{
  std::string outputMessage = "Errors written to: ";
  outputMessage += filename;

  #pragma message(outputMessage.c_str())
}

上面的代码块确实有效,但会给出以下警告:

Warning 1   warning C4083: expected 'string'; found identifier 'outputMessage'

1 个答案:

答案 0 :(得分:5)

正如#中的#pragma所示,这是预处理器的一个功能。您不能在运行时调用它。代码实际上不起作用,您看到的警告来自您对#pragma的无效使用。

由于您使用的是 Visual Studio ,因此您可能会发现OutputDebugMessage函数很有用。