Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Kembali Laluan Boleh Laksanakan Merentasi Platform Berbeza?

Bagaimanakah Saya Boleh Mendapatkan Kembali Laluan Boleh Laksanakan Merentasi Platform Berbeza?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 01:50:39558semak imbas

How Can I Reliably Retrieve the Executable Path Across Different Platforms?

Pengambilan Merentas Platform bagi Laluan Boleh Laksana

Mencapai perolehan semula laluan boleh laku yang bebas platform telah terbukti sukar difahami pada masa lalu. Walaupun ada pertanyaan sebelum ini, penyelesaian muktamad atau keputusan "mustahil" yang jelas masih belum dicapai.

Penyelesaian Khusus Platform

Sementara penyelesaian universal masih sukar difahami, platform -pendekatan khusus wujud:

  • Linux: Gunakan "/proc/self/exe" sebagai input kepada fungsi std::filesystem::canonical atau readlink.
  • Windows: Lulus NULL sebagai parameter pemegang modul kepada GetModuleFileName.

Ogre and Very Sleepy:

Dalam kes khusus permainan Ogre yang diprofilkan oleh Very Sleepy, laluan mutlak ke fail konfigurasi boleh berlalu kepada Sangat Mengantuk. Ini memastikan permainan boleh mengesan fail tanpa mengira direktori kerja.

Penyahpepijat Visual Studio:

Untuk menjalankan boleh laku tanpa menetapkan direktori kerja dalam Visual Studio, gunakan $ (TargetPath) dan hantar NULL ke GetModuleFileName.

Tambahan Nota:

Pendekatan lain mungkin berfungsi pada sistem tertentu tetapi mungkin tidak mudah alih. Adalah dinasihatkan untuk menguji dengan teliti sebarang penyelesaian sebelum bergantung padanya dalam persekitaran pengeluaran.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kembali Laluan Boleh Laksanakan Merentasi Platform Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn