2012-06-02 262 views
1

我想使用char *和#pragma消息来告诉我的问题在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' 

回答

5

由于##pragma建议,这是预处理器的功能。您不能在运行时调用。该代码实际上不起作用,并且您看到的警告来自您对#pragma的无效使用。

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

+0

哇,所以这是不可能的?游民。 –

+1

@btcode:由于您正在使用_Visual Studio_,因此您可能会发现'OutputDebugMessage'函数有用... –