Я прочитал это и добился открытия своего приложения 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, но когда приложение открывается, полное имя файла не копируется. Например: в приведенном выше случае копируются только "и настройки...", а часть "C:\Documents" остается позади. Не могли бы вы указать на мою ошибку, пожалуйста?
Реализация С#:
[STAThread]
static void Main(string[] args)
{
foreach (string result in args)
{
MessageBox.Show(result);
}
}