2011-07-03 23 views
1

我正在使用來自https://github.com/mikma/npsimple的簡單NPAPI示例。當傳遞給NPAPI插件函數時JavaScript參數會被搞亂

當我嘗試從javascript傳遞參數到NPAPI調用函數時,NPAPI函數收到的參數 是垃圾,雖然參數計數爲 正確傳遞。將它們轉換爲char *後,以下是其中我試圖打印「ARGS」陣列功能的定義:

invoke(NPObject* obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result) 

我失去了一些東西在這裏?

+0

如果某人不能看到無法正常工作的代碼,就很難說出自己做錯了什麼。 – smorgan

+0

我只是試圖在https://github.com/mikma/npsimple上運行示例。我剛剛改變了test.html中的javascript函數來傳遞參數。 –

回答

2

基於你給我們的東西,很難說出你想要做什麼。具體來說,正如smorgan所要求的那樣,我們需要知道如何將args數組轉換爲char *。

您是否知道NPVariant的工作原理?如果它是一個字符串,NPVariant類型將是NPVariantType_String,並且您需要同時使用NPString結構(它又是NPVariant聯合的一部分)和UTF8Length成員的UTF8Characters成員,因爲該字符串可能是也可能不是null終止。

另外,請記住,根據您的輸入內容,它可能會或可能不會有效使您的NPVariant成爲char *。如果這有幫助,很好;如果沒有,請發佈您嘗試處理輸入的函數的內容以及您正在進行的特定JavaScript調用。你沒有給我們足夠的工作來給你更多的猜測,你可能會遇到什麼問題。

+1

謝謝Taxilian,我明白了。問題是該字符串不是空終止的。 –

+0

優秀;既然這是我建議你檢查的行話之一,你能把這個標記爲答案嗎? =]謝謝 – taxilian