È possibile creare un po 'di enum
in codice C++ di addon Node.js e quindi esporre questo tipo al codice js? Ho trovato che i tipi di enum nativo esistono in js, ma non ci sono informazioni sulla loro implementazione nel motore v8.Tipi di enumerazione nel componente aggiuntivo Node.js
5
A
risposta
3
Non vi sono particolari tipi enum in JavaScript, anziché utilizzare int costante che, come nel web, proprietà UNSENT,OPENED, HEADERS_RECEIVED,LOADING,DONE
di XMLHttpRequest
sono definiti come tipo enum in C++. Per esportare queste proprietà in v8 per javascript, utilizzare come:
Local<Object> obj;
const char* k = "HEADERS_RECEIVED";
int v = 1;
obj->Set(v8::String::NewSymbol(k), v8::Int32::New(v), ReadOnly); // Use PropertyAttribute ReadOnly so that value won't be changed by javascript.
4
Si noti che nell'esempio data dal Kevin è necessario creare un'istanza di Local<Object>
prima di utilizzarlo in modo da assicurarsi di chiamare Object::New()
.
Local<Object> obj = Object::New();
const char* k = "HEADERS_RECEIVED";
int v = 1;
obj->Set(v8::String::NewSymbol(k), v8::Int32::New(v), ReadOnly); // Use PropertyAttribute ReadOnly so that value won't be changed by javascript.
1
questo è ora è cambiato secondo le ultime v8 API ref
Isolate* isolate = args.GetIsolate();
Local<Context> context = isolate->GetCurrentContext();
Local<Object> obj;
obj->DefineOwnProperty(
context,
String::NewFromUtf8(isolate,"enum"),
Number::New(isolate,1), v8::ReadOnly
);
Problemi correlati
- 1. Componente aggiuntivo MSN Messenger
- 2. Come acquisire l'evento di stampa nel componente aggiuntivo di Outlook?
- 3. Utilizzo delle preferenze utente nel componente aggiuntivo di Firefox
- 4. Denominazione dei tipi di enumerazione
- 5. Apertura trova nella cartella di componente aggiuntivo
- 6. Come distribuire un componente aggiuntivo XLL Excel e registrare automaticamente il componente aggiuntivo in Excel
- 7. Enumerazione rapida su NSArray di tipi diversi
- 8. Crea componente aggiuntivo per Acrobat Reader - PDF
- 9. Gestione eccezioni del componente aggiuntivo Outlook 2007
- 10. Componente aggiuntivo interprete C# per Visual Studio
- 11. Come creare un componente aggiuntivo Gmail?
- 12. Componente aggiuntivo di Outlook Impostazioni di aggiornamento ClickOnce
- 13. Installazione di VSTO (componente aggiuntivo di Outlook) Distribuzione (C#)
- 14. Come creare un writeStream aggiuntivo in Node.js
- 15. Dove deve essere memorizzato un componente aggiuntivo di Visual Studio?
- 16. Un componente aggiuntivo di Outlook può scrivere nel registro eventi di sistema?
- 17. C# Come ottenere l'indirizzo di posta elettronica del mittente nel componente aggiuntivo di Outlook
- 18. Riproduzione di un suono in un componente aggiuntivo di Firefox
- 19. Passaggio di interi al componente aggiuntivo di Word 2010 VSTO
- 20. Blocco di disinstallazione sdk per il componente aggiuntivo di Firefox
- 21. tipi MongoDB in Node.js
- 22. Utilizzo dei tipi di enumerazione come proprietà nell'obiettivo C
- 23. componente aggiuntivo di automazione vs COM Add-in
- 24. Utilizzo di Qt con Visual Studio senza componente aggiuntivo
- 25. Creazione di un componente aggiuntivo per Outlook utilizzando javascript
- 26. Come disattivare il controllo dell'aggiornamento di Firefox componente aggiuntivo all'avvio
- 27. Come caricare un componente aggiuntivo di Excel utilizzando Interop
- 28. Il componente aggiuntivo di Visual Studio non va via
- 29. installazione di VSTO Ufficio componente aggiuntivo utilizzando WiX
- 30. Come visualizzare la finestra di uscita da un componente aggiuntivo?
Sembra che non c'è modo per le enumerazioni legittimi per addon node.js. Nel gruppo Google Node.js ho ottenuto la seguente risposta alla domanda: "Nulla di ciò che puoi fare è esportarli [parametri] come numeri interi e controllare gli input in C++ land". – Ivan