It looks like you work with Module as if you were still in Node mode. But when working in HTML mode, Module has already been defined, as explained here:
https://kripken.github.io/emscripten-site/docs/api_reference/module.html#creating-the-module-object On Monday, July 13, 2015 at 2:41:55 PM UTC+3, Bryan Duggan wrote: > > Thanks > > Here is my problem though. If I compile like this: > > emcc genmidi.c midifile.c parseabc.c parser2.c queues.c store.c -o > abc2midi.js -s EXPORTED_FUNCTIONS="['_main', '_abc2midi']" > > Even if I set noInitialRun: true in Module like this: > > var argv = [ "in.abc", "1", "-o", "out.mid"]; > var Module = { > arguments: argv, > print: function(text){ > console.log('print'); > console.log(text) > }, > printErr: function(text){ > console.log(text) > }, > preRun : function(){ > console.log('prerun'); > FS.createDataFile("/", "in.abc", abcContents, true, true); > }, > noInitialRun: true, > }; > > The C program runs, but does not take the command line arguments!! I can > see the output on the Javascript console. Also preRun is never called > > If I compile like this: > > emcc genmidi.c midifile.c parseabc.c parser2.c queues.c store.c -o > abc2midi.js -s EXPORTED_FUNCTIONS="['_main', '_abc2midi']" -s INVOKE_RUN=0 > > And try this in my HTML page: > > var argv = [ "in.abc", "1", "-o", "out.mid"]; > > var Module = { > arguments: argv, > print: function(text){ > console.log('print'); > console.log(text) > }, > printErr: function(text){ > console.log(text) > }, > preRun : function(){ > console.log('prerun'); > FS.createDataFile("/", "in.abc", abcContents, true, true); > }, > noInitialRun: false, // Makes no difference > }; > run(); > > preRun gets called but the C program doesnt run > > Whats going on!? > > Bryan > > > > On Monday, 13 July 2015 10:52:54 UTC+1, chronotext wrote: >> >> Hi there, >> >> I think Module.arguments is what you're looking for: >> >> >> https://kripken.github.io/emscripten-site/docs/api_reference/module.html#affecting-execution >> >> HTH, >> Ariel >> >> On Monday, July 13, 2015 at 2:07:13 AM UTC+3, Bryan Duggan wrote: >>> >>> Hey >>> >>> I presume this is standard enough usage for emscripten, but I cant >>> figure out how to do it. I am trying to port a command line C program >>> called abc2midi to emscripten. >>> >>> Everything compiles fine and I can get both the javascript to generate >>> and run in node and the HTML to generate and run in the browser. >>> >>> Now I want to do the following: >>> >>> 1 Write a text file to the virtual file system. This is how Im doing it: >>> >>> var Module = { >>> 'print': function(text){ >>> console.log(text) >>> }, >>> 'printErr': function(text){ >>> console.log(text) >>> }, >>> 'preRun' : function(){ >>> console.log('prerun'); >>> //FS is not defined >>> FS.createDataFile("/", "in.abc", abcContents, true, true); }, >>> 'noInitialRun': true, >>> }; >>> >>> 2. Call the main method and pass in some command line arguments >>> including the file name. I cant find an example of how to do this and >>> everything Ive tried has not worked >>> >>> 3. Read back the generated file from the file system >>> >>> Surprisingly hard to find an example of this pretty straightforward >>> scenario! Any help would be much appreciated >>> >>> Bryan >>> >> -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
