esiste un modo per utilizzare le classi C++ esportate da una dll win32 in Delphi per win32? Ci sono altri modi per ottenere cose simili (COM, .NET, ...)?Come utilizzare le classi C++ esportate da una DLL in Delphi
risposta
Non è possibile importare una classe. Puoi solo importare le funzioni. Rudy Velthuis has written at length on the topic. Anche se non è possibile utilizzare direttamente una classe esportata C++, egli descrive un paio di tecniche per ottenere lo stesso effetto:
"Appiattire" l'oggetto, quindi sul lato chiamante non v'è più alcun oggetto, basta un puntatore che viene passato alla DLL insieme ad altri parametri per una serie di funzioni che racchiudono i metodi dell'oggetto. Scrivere il wrapper è molto semplice, anche se può essere noioso.
Utilizzare classi virtuali pure. I compilatori Windows C++ e Delphi hanno generalmente gli stessi layout VMT, quindi se la classe C++ può essere descritta da un elenco di metodi virtuali puri, è possibile creare una dichiarazione Delphi equivalente, eseguire il cast di tipo con il puntatore oggetto restituito dalla DLL, e procedere.
Nell'articolo sono riportati esempi completi di entrambi i modi.
Non è possibile utilizzare le classi C++ esportate da una DLL per quanto ne so in Delphi; puoi usare le funzioni C e puoi importare classi COM in Delphi.
- 1. Callback da Delphi dll a C# app
- 2. Come utilizzare una dll C# in IronPython
- 3. Chiamare una DLL Delphi da un'applicazione C# .NET
- 4. È possibile chiamare una DLL C# da una DLL C?
- 5. Perché le DLL Delphi utilizzano WideString senza utilizzare ShareMem?
- 6. Come utilizzare le classi da file .jar?
- 7. Python può chiamare le funzioni Delphi in una DLL?
- 8. Chiamata di funzioni da un C++ DLL in Delphi
- 9. Come utilizzare una libreria C++ da C# e .NET?
- 10. Esportare le funzioni da dll solo ordinale
- 11. Come posso passare una stringa Delphi a una DLL Prism?
- 12. chiamata Delphi DLL da C++ \ CLI con molti parametri
- 13. Chiamare una funzione DLL delphi dal codice C#
- 14. Come analizzare un file dump da un file DLL Delphi?
- 15. come accedere a una classe da una DLL in python?
- 16. Utilizzare DLL in C senza lib
- 17. Passaggio record come risultato di una funzione da Delphi DLL a C++
- 18. È possibile utilizzare una dll in C# in un'applicazione golang
- 19. Come documentare una C# dll
- 20. Come utilizzare una DLL in un progetto Haskell?
- 21. Come utilizzare una libreria C++ in un'app C#?
- 22. Delphi Da PChar a C++ const char *
- 23. Enumerare tutte le classi Delphi che implementano una determinata interfaccia?
- 24. Chiamare vb6 dll da C#
- 25. Riferimento a una DLL da un'altra DLL
- 26. Come creare una classe da dll (costruttore in dll)? (С ++)
- 27. Utilizzare le classi generate da JAXB (xjc) in Android
- 28. C++ Caricare dinamicamente le classi
- 29. restituendo una stringa da Delphi dll a C# chiamante a 64 bit
- 30. Come usare una dll C++ in Unity3D?