Tengo un dll C++ que he escrito (nativo, no .net), y me gustaría utilizar su funcionalidad de Visual Lisp. ¿Alguien puede señalarme un ejemplo de cómo hacer esto, o al menos qué tipo de documentación leer?Visual Lisp: cómo llamar a funciones en DLL C++ externo
8
A
Respuesta
6
Lo resolví escribiendo un contenedor activex/COM para mi dll, que creo que debería facilitar el enlace en el futuro. Comenzar un hilo en the swamp dio algunas respuestas de gente amable acerca de cómo llamar a COM desde Visual Lisp. Para el registro, se ve algo como esto:
//in c++... (header and IDL file also needed)
hresult timestwo(double in,double* out)
{
*out = in*2;
return S_OK;
}
;; in Lisp...
(vl-load-com)
(setq myinstance (vlax-create-object "mycomwrapperdll.mycomwrapperclass"))
(setq num 12.34)
(vlax-invoke-method myinstance 'timestwo num 'newnum)
(vlax-release-object myinstance)
;; newnum now contains 24.68
4
Expone su código C++ nativo a AutoLisp utilizando las llamadas API acedDefun() y acedRegFunc().
Here es un debate en el foro de programación de Autodesk que hace exactamente su pregunta.
Cuestiones relacionadas
- 1. Llamar a funciones de Drupal en un archivo PHP externo
- 2. Llamar a C++ DLL de Python
- 3. Cómo crear DLL ActiveX en Visual C++
- 4. Cómo llamar a las funciones de Matlab desde C++
- 5. System.AccessViolationException al llamar a C++ dll
- 6. Exportación de funciones de C++ dll a C# P/Invoke
- 7. Llamar a C# dll desde Delphi
- 8. ¿Puedes llamar a una DLL de C desde una DLL de C?
- 9. Referencias DLL en Visual C++
- 10. funciones sobrecargadas en C++ DLL archivo DEF
- 11. llamar a funciones C dentro Javascript
- 12. Cómo llamar a la función DLL de C# desde VBScript
- 13. Cómo llamar a funciones/métodos C++ a través de JavaScript
- 14. Llamar a las funciones de Powershell desde C#
- 15. ¿Cómo llamar a Wine dll desde Python en Linux?
- 16. Llamar a una función delphi DLL desde C# Code
- 17. Llamar a LISP o SCHEME desde .NET/C#
- 18. Cómo puedo llamar a las funciones de C++ desde ruby
- 19. ¿Cómo puedo llamar a las funciones DLL de Windows desde Ruby?
- 20. referencia csc.exe archivo .dll externo
- 21. ¿Llamar a Lisp desde Ruby/Rails?
- 22. ¿Cómo puedo llamar a las funciones de la API de Windows usando emacs lisp?
- 23. Llamando a C# dll en vbscript
- 24. Llamar a un programa externo desde OCaml
- 25. ¿Cómo llamar a un programa externo con parámetros?
- 26. Usando .dll en Visual Studio 2010 C++
- 27. Llamar a las funciones de C++ exe desde C#
- 28. Cómo llamar javascript externo en window.load?
- 29. Nombres de funciones como cadenas en Lisp?
- 30. Llamar a los métodos DLL desde Javascript
Eso me parece una pregunta un tanto diferente: el póster ha hecho una aplicación ObjectARX que es algo que trato de evitar. Me gustaría llamar a una DLL existente de lisp, idealmente sin modificar la DLL. ¿Es eso posible? –
Sé que AutoLisp tiene algunos ganchos COM, pero realmente no puedo comentar sobre ese enfoque ya que no lo he usado personalmente. Siempre pensé que la construcción de un .dll conector delgado ObjectARX (o .NET equivalente) era el enfoque más fácil. (Pero, de nuevo, he sido programador de C++ durante décadas :) –