以VC ++格式获取当前目录

时间:2013-07-31 21:24:26

标签: visual-c++ c++-cli

我正在研究vc ++表单代码。我需要获取当前目录以打开项目的帮助表单。虽然我尝试了所有可以在互联网上找到的代码,但同样的问题。我发布下面的代码之一。代码的输出为true或false,它不返回作为当前目录值的字符串。

TCHAR pwd [MAX_PATH]; GetCurrentDirectory(MAX_PATH,pwd); MessageBox :: Show(Convert :: ToString(& pwd),“My Application”,MessageBoxButtons :: OKCancel,MessageBoxIcon :: Asterisk);

请帮我了解如何了解VC ++表单中的当前目录

2 个答案:

答案 0 :(得分:1)

您正在将指针的地址传递给Convert :: ToString()。 pwd是一个数组,使用没有数组下标的变量名自动衰减到指针。你想要使用

Convert::ToString(pwd)

Convert::ToString(&pwd[0])

答案 1 :(得分:0)

您正在使用C ++ / CLI。在这种情况下,您应该尽可能使用.NET函数...因此,您应该使用属性System::Environment::CurrentDirectory而不是“GetCurrentDirectory”!

或者,您应该禁用/ clr(.NET)支持并仅使用本机函数!

如果你真的想混合原生代码和托管代码,你应该使用String的构造函数来转换来自TCHAR:

String^ str = gcnew String(pwd);