我有这样的函数需要可变数量的参数和构造
字符串,并将其传递给另一个函数以打印日志。

logverbose( const char * format, ... )
{
char buffer[1024];
va_list args;
va_start (args, format);
vsprintf (buffer,format, args);
va_end (args);

LOGWriteEntry( "HERE I NEED TO PASS buffer AS LPCTSTR SO HOW TO CONVERT buffer to LPCTSTR??");

}

除了使用buffer [1024],还有其他方法吗?因为log可以更大或更小。所有这些都是用C++代码编写的,请让我知道是否有更好的方法来执行此操作.....

最佳答案

您可能只是通过它:

LOGWriteEntry (buffer);

如果您将古老的内存模型与Windows一起使用,则可能必须显式转换它:
LOGWriteEntry ((LPCTSTR) buffer);

更正:

LPCTSTr是指向Const TCHAR STR的长指针。 (我忽略了TCHAR)的第一个答案。

您必须使用MultiByteToWideChar functionbuffer复制到另一个缓冲区,并将其传递给函数:
w_char buf2 [1024];
MultiByteToWideChar (CP_ACP, 0, buffer, -1, buf2, sizeof buf2);
LOGWriteEntry (buf2);

关于c++ - 如何将char数组转换为LPCTSTR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24769362/

10-15 09:09