XPCOM array
Mozilla December 20th, 2006
记录下 XPCOM 的 array 的使用.
一个传入 string array 的例子:
1. IDL 的定义
1 | boolean Run(in PRUint32 count, [array, size_is(count)] in string args); |
2. CPP 的实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | NS_IMETHODIMP nsAntlerIPC::Run(PRUint32 count, const char **args, PRBool *_retval) { char **child_argv = NULL; child_argv = (char **)nsMemory::Alloc(sizeof(char *) * (count + 1)); if (!child_argv) return NS_ERROR_OUT_OF_MEMORY; PRUint32 i; for (i=0; i<count; i++) { child_argv[i] = NS_CONST_CAST(char*, args[i]); } child_argv[count] = NULL; return NS_OK; } |
3. JS 的调用
1 2 | var argv = new Array("Just", "for", "test."); obj.Run(argv.length, argv); |
Related posts:
Tags: xpcom