私の実行可能ファイルはこの場所にあります-> D:\Examples\C_Pro\newApp.exe また、その「C_Pro」フォルダーにはいくつかのファイルが含まれています ( file1.txt、file2.txt、file44.exe、newApp.c )
私のnewApp.cファイルには、このように同じフォルダにある「file44.exe」ファイルを実行するShellExecute関数が含まれています-> ShellExecute(NULL,"open","D:\Examples\C_Pro\file44.exe",NULL ,NULL,1)
このようにして、すべてが正常に動作します..
私はVBのAppPathのようなものについて話している
しかし、別の PC でこの newApp.exe を実行したい場合は、""D:\Examples\C_Pro\" を、別の PC の "newApp.exe" ファイルを含むパスに置き換えたい (C のように) :\ソフトウェア\ )
GetModuleFileName 関数を使用してパスを取得しますが、新しいディレクトリの PathRemoveFileSpec 関数が機能しない時点でのみ必要な newApp.exe 部分が含まれています。
また、GetModuleFileName のリターン パスも --> D:\Examples\C_Pro\newApp.exe のようになりますが、ShellEcxecute に何らかのパスを入力すると、このように二重の shalse (スペース シーケンス) が必要になります --> D:\Examples\C_Pro\
どうすればこの問題を解決できますか。
実際のコード スニペットはこれです...
int main()
{
ShellExecute(NULL,"open","D:\\Softwares\\TypingMaster700.exe",NULL,NULL,SW_SHOWNORMAL);
}
しかし、私はこのようにしたいです。(これはダミー関数です。ここでの「some_Funtion」は説明用のダミー関数を意味します。
int main()
{
char *dirPath = some_Function(a,x,d);
char *fullPath;
fullPath = strcat(dirPath,"\\TypingMaster700.exe");
ShellExecute(NULL,"open",fullPath,NULL,NULL,SW_SHOWNORMAL);
}