I want to convert System::String ^ to LPCWSTR.
for
FindFirstFile(LPCWSTR,WIN32_FIND_DATA);
Please help.
You need to use P/Invoke. Check this link: http://www.pinvoke.net/default.aspx/kernel32/FindFirstFile.html
Simply add the DllImport native function signature:
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
static extern IntPtr FindFirstFile
(string lpFileName, out WIN32_FIND_DATA lpFindFileData);
and CLR will do managed to native type marshaling automatically.
[Edit] I just realized you're using C++/CLI. In that case, you can also use implicit P/Invoke, which is a feature which only C++ supports (opposed to C# and VB.NET). This articles shows several examples:
How to: Convert Between Various String Types in C++/CLI