我已经阅读了这篇文章并实现了我的 C# 应用程序的打开。我的 C# 应用程序打开一个文件夹并绘制一个图形。我是否可以告诉我的 C# 应用程序从 C++ 打开哪个文件夹,然后一旦看到图形并关闭 C# 程序,它就会返回到 C++ 应用程序。
编辑:谢谢马修,我让它工作了。
与我的 CreateProcess lpCommandLine 变量相关的另一个查询:(下面是代码)
CString sFolderPath = "C:\Documents and Settings\...";
int nStrBuffer = sFolderPath.GetLength() + 50;
LPTSTR szParam = _tcsdup(sFolderPath.GetBuffer(nStrBuffer));
nRet = ::CreateProcess(szCmdline,// pointer to name of executable module
szParam,// pointer to command line string
NULL,// pointer to process security attributes
NULL,// pointer to thread security attributes
FALSE,// handle inheritance flag
DETACHED_PROCESS,// creation flags
NULL,// pointer to new environment block
NULL,// pointer to current directory name
&sui,// pointer to STARTUPINFO
&pi );// pointer to PROCESS_INFORMATION
我正确获取了变量 szParam,但是当应用程序打开时,不会复制完整的文件名。例如:在上述情况下,只有“and Settings....”被复制到其中,因为“C:\Documents”部分被留下。你能指出我的错误吗?
C#实现:
[STAThread]
static void Main(string[] args)
{
foreach (string result in args)
{
MessageBox.Show(result);
}
}