我正在研究vc ++表单代码。我需要获取当前目录以打开项目的帮助表单。虽然我尝试了所有可以在互联网上找到的代码,但同样的问题。我发布下面的代码之一。代码的输出为true或false,它不返回作为当前目录值的字符串。
TCHAR pwd [MAX_PATH]; GetCurrentDirectory(MAX_PATH,pwd); MessageBox :: Show(Convert :: ToString(& pwd),“My Application”,MessageBoxButtons :: OKCancel,MessageBoxIcon :: Asterisk);
请帮我了解如何了解VC ++表单中的当前目录
答案 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);