Yeaay, it works. Thanks so much!! Anw do you have any idea how to print some variable in C to console? I tried "printf", but I think node doesn't accept that.
On Friday, July 4, 2014 6:21:27 AM UTC+7, Nathan Rajlich wrote: > > Muhammad, your code looks very close to me. Note that I haven't tried this > code, but try something like this: > https://gist.github.com/TooTallNate/d1f8ee799e9764c0ab18 > > I've only changed: > > * The "pointer" argument type to "string" > * Don't call `free()` on the passed in char *, V8/node will take care of > that for us and we don't want a double-free > > Let me know if that works for you. Cheers! > > > On Thu, Jul 3, 2014 at 1:36 AM, Muhammad S Maromi <[email protected] > <javascript:>> wrote: > >> Hi Nathan, I want to do is, let's say I have object: >> >> var obj = {foo:1, bar: 2} >> >> then pass that object to ffi function. >> What is the parameter of function (in C module) should be? >> >> >> Thanks ryan, let me check what'll it goes. >> >> >> On Thursday, July 3, 2014 4:52:56 AM UTC+7, ryandesign wrote: >> >>> >>> On Jul 1, 2014, at 10:18 PM, Muhammad S Maromi wrote: >>> >>> > I tried the "straightforward" way, but it produces this error: >>> > >>> > $ node learn.js >>> > /Users/msmaromi/learnnode/trenupp/node_modules/ffi/lib/_foreign_function.js:55 >>> > >>> >>> > throw e >>> > ^ >>> > TypeError: error setting argument 0 - writePointer: Buffer instance >>> expected as third argument >>> > at Object.writePointer (/Users/msmaromi/learnnode/ >>> trenupp/node_modules/ffi/node_modules/ref/lib/ref.js:740:11) >>> > at Object.set (/Users/msmaromi/learnnode/ >>> trenupp/node_modules/ffi/node_modules/ref/lib/ref.js:482:13) >>> > at Object.alloc (/Users/msmaromi/learnnode/ >>> trenupp/node_modules/ffi/node_modules/ref/lib/ref.js:514:13) >>> > at Object.ForeignFunction.proxy [as tesJson] >>> (/Users/msmaromi/learnnode/trenupp/node_modules/ffi/lib/_foreign_function.js:50:22) >>> >>> >>> > at Object.<anonymous> >>> > (/Users/msmaromi/learnnode/trenupp/learn.js:18:9) >>> >>> > at Module._compile (module.js:456:26) >>> > at Object.Module._extensions..js (module.js:474:10) >>> > at Module.load (module.js:356:32) >>> > at Function.Module._load (module.js:312:12) >>> > at Function.Module.runMain (module.js:497:10) >>> >>> What do you mean exactly when you say "json object"? Do you mean a >>> JavaScript object like this: >>> >>> >>> var o = {foo: 5}; >>> >>> >>> Or do you mean a string representation of that object in JavaScript >>> object notation (JSON) like this: >>> >>> >>> var j = '{foo: 5}'; >>> >>> >>> For the latter, I would think you could pass the buffer representation >>> of the string j to an ffi function. That function would need to know how to >>> decode JSON-formatted strings. >>> >>> For the former, you would need to convert o to JSON first (e.g. using >>> JSON.stringify(o)). >>> >>> -- >> Job board: http://jobs.nodejs.org/ >> New group rules: >> https://gist.github.com/othiym23/9886289#file-moderation-policy-md >> Old group rules: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> --- >> You received this message because you are subscribed to the Google Groups >> "nodejs" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/nodejs/d1499527-2524-4552-bd14-5465fc1fd894%40googlegroups.com >> >> <https://groups.google.com/d/msgid/nodejs/d1499527-2524-4552-bd14-5465fc1fd894%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/3a9966af-2580-40d3-8bbe-1749b3e78349%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
