2015-06-08 232 views
0

這裏我給你一個參數傳遞到處理程序:參數傳遞給另一個函數

它的工作原理

但我想分配兩個參數! 這就是爲什麼我試圖做到:

const unsigned argc = 2; 
v8::Local<v8::Value> argv[1] = { NanNew("hello world") }; 
argv[2] = { NanNew("second argument") }; 

NanMakeCallback(NanGetCurrentContext()->Global(), callbackHandle, argc, argv); 

但後來我得到這個錯誤:

functions.cc:97:18: error: expected expression 
    argv[2] << { NanNew("second argument") }; 
      ^

什麼我錯了嗎?我如何分配兩個參數?由於

+0

您的錯誤信息與您顯示的代碼片段不符。 –

+0

@ T.C。抱歉已經正確! –

回答

3

你似乎要創建大小爲1的數組:

v8::Local<v8::Value> argv[1] = { NanNew("hello world") }; 

然後嘗試指派{ NanNew("second argument") };其元素與索引2這是行不通的。你的意思是這樣的:

v8::Local<v8::Value> argv[2] = { NanNew("hello world"), NanNew("second arg") }; 

+0

作品!非常感謝! –

3

您試圖在兩個步驟中進行初始化。

int values[2] = { 0, 1 }; // OK: Array of two ints initialized with 0 and 1 respectively 

int values[2] = { 0 }; // OK: Array of two ints, first value initialized with 0 
values[1]= { 1 }; // Error: This is not an initialization 

{}語法僅用於數組的初始化。 (當然函數體和這樣的)

在你的情況,你可能想這樣做

v8::Local<v8::Value> argv[2] = { NanNew("hello world") , NanNew("second argument") }; 

請注意,您以前試圖創建僅1個元素的數組,ARGV [1]試圖訪問第三個元素,argv [2] = ...

索引從0開始,因此有效索引範圍從0到N-1。

相關問題