0

ファイルではなく文字列から読み取るようにこの関数を変更するにはどうすればよいですか? glfxin は明らかに FILE オブジェクトです。何らかの方法で const char* を FILE クラスに挿入できれば、設定されます。何か案は?

bool glfxParseEffectFromFile( int effect, const char* file )
{
    bool retVal=true;

    fopen_s(&glfxin, file, "r");
    if(glfxin==NULL) {
        gEffects[effect]->Log()<<"Cannot open file "<<file<<endl;
        gEffects[effect]->Active()=false;
        return false;
    }
    try {
        //glfxdebug=1;
        gEffect=gEffects[effect];

        string fname(file);
        size_t lastSlash=fname.find_last_of('/')+1;
        size_t lastBackSlash=fname.find_last_of('\\')+1;
        lastSlash=max(lastSlash, lastBackSlash);
        gEffect->Dir()=fname.substr(0, lastSlash);

        glfxrestart(glfxin);
        glfxset_lineno(1);
        glfxparse();
    }
    catch(const char* err) {
        gEffect->Log()<<err<<endl;
        gEffect->Active()=false;
        retVal=false;
    }
    catch(const string& err) {
        gEffect->Log()<<err<<endl;
        gEffect->Active()=false;
        retVal=false;
    }
    catch(...) {
        gEffect->Log()<<"Unknown error occurred during parsing of "<<file<<endl;
        gEffect->Active()=false;
        retVal=false;
    }

    fclose(glfxin);
    return retVal;
}
4

1 に答える 1

2

POSIX 準拠のシステムでは、関数を使用して文字配列をオブジェクトfmemopen()として開くことができます。FILE *

于 2013-01-02T08:11:55.920 に答える