1

次の手法を使用して、カスタム プロトコルを介して起動される Windows で C++ アプリケーションを作成しました .

実行可能ファイルと同じフォルダーにある ifstream を使用して構成ファイルを読み込みます。したがって、相対パス ( ifstream myfile ("config.cfg");) を使用すると、魅力的に機能します。しかし、次のように IE でカスタム プロトコルを使用してアプリケーションを呼び出すとmyprotocol:\\、同じ実行可能ファイルを実行している間、ファイルをロードできません。

カスタム プロトコルを介して実行した場合にプログラムの動作が異なる理由と、絶対パスを使用せずにアプリケーションにファイルをロードさせるにはどうすればよいかを説明してもらえますか?

int main(int argc, char* argv[])
{
    wchar_t buffer[MAX_PATH];
    GetModuleFileName( NULL, buffer, MAX_PATH );
    std::wcout << buffer;

    std::string line;
    std::ifstream file ("config.cfg);
    if(file.is_open())
    {
        std::cout << "Succes";
    } 
    else
    {
        std::cout << "Could not load file";
        return -1;
    }
    return 0;
}

GetModuleFileNameどちらの場合も、実行可能ファイルのパスを正しく指定します。ちょっとしたテストでした。

どんな助けでも大歓迎です、アレキサンダー

4

1 に答える 1