Muchos de los lenguajes de programación actuales se basan en C; como C++, C#, Java, Objective-C. Entonces, ¿podría llamar a un método C desde el código C++? ¿O llama a C desde Java o C#? ¿O es este objetivo fuera de alcance e irracional? Incluye una muestra de código rápido para mi comprensión y la de los demás.Métodos de llamada C del código C++/Java/C#?
Respuesta
C++, C#, Objective-C y Java pueden todos llamar a las rutinas C. Aquí hay algunos enlaces que le darán una visión general del proceso necesario para llamar a C de cada idioma que solicitó.
¿Puede llamar rutinas C desde el código C recién compilado? ¿O el código C tiene que estar en una biblioteca? –
C++ y Objective-C pueden compilar C, ya que ambos son superconjuntos. C# y Java requerirán que el código C exista en libs – Alan
el artículo sobre java no se trata de llamar a c desde java sino llamar a java desde c – ManBugra
un ejemplo de llamar C de C++. Guardar esta función C en un archivo llamado A.C.:
int f() {
return 42;
}
y compilarlo:
gcc -c a.c
que producirá un archivo llamado a.o. Ahora escriba un programa en C++ en un archivo llamado main.cpp:
#include <iostream>
extern "C" int f();
int main() {
std::cout << f() << std::endl;
}
y compilar y enlazar con:
g++ main.cpp a.o -o myprog
que producirá una llamada execuatable miprog que imprime 42 cuando se ejecuta.
C para llamar a métodos en Java ...
hay una palabra clave "nativo" en el que se puede escribir código C dependiente de la máquina e invocar desde Java ....
Básicamente se crea una DLL file..then u tiene que cargarlo en el programa de ur ...
un buen ejemplo here ....
C para llamar a métodos de Java, hay varias opciones, entre ellas:
- JNA - Java Native Access. Gratis. Fácil de usar. Declaración manual de las clases y las interfaces de Java en paralelo a las estructuras y funciones de C existentes. Más lento que JNI: unos pocos cientos de nanosegundos por llamada.
- JNI - Java Native Interface. Gratis. La opción más rápida. Requiere una capa de código de pegamento nativo entre su código Java y las funciones nativas que desea llamar.
- JNIWrapper - Producto comercial, similar a JNA.
Para llamar a C/C++ desde Java, también eche un vistazo a BridJ (es como JNA con C++ y un mejor rendimiento).
- 1. C# Métodos de llamada en clases genéricas
- 2. Métodos de llamada usando nombres en C#
- 3. C# Métodos de extensión - devolver llamada objeto
- 4. Métodos de llamada en orden aleatorio (C#)
- 5. Métodos de llamada C# de C++ sin usar COM
- 6. Llamada de función dentro del código XAML?
- 7. Comando de llamada del código detrás
- 8. Métodos de gestión del código fuente
- 9. Métodos del bean de llamada con argumentos de JSF páginas
- 10. Métodos de llamada por cadena
- 11. Métodos de devolución de llamada de Java
- 12. Ejecutando cierto código para cada llamada de método en C++
- 13. Ruby mixins y super métodos de llamada
- 14. C# RealProxy: métodos genéricos?
- 15. Usando el grupo de métodos C# ejecuta el código
- 16. Métodos dentro del espacio de nombres C#
- 17. Métodos de delegar de llamada de otra clase
- 18. Herramientas para obtener una función gráfica llamada gráfica del código
- 19. C# Tamaño del código y tiempo de ejecución del código
- 20. Estilo de código para métodos privados en C#
- 21. métodos virtuales puros C++
- 22. Refacturación de código duplicado en los métodos
- 23. C#: ¿Firmas de métodos?
- 24. Analizando el código C# (como cadena) e insertando métodos adicionales
- 25. Creación de una instancia de una clase C++ y métodos de llamada sobre ella en Python
- 26. Métodos de llamada escritos en C# en Excel 2007 a partir de las fórmulas de celda
- 27. eliminando archivos del código C
- 28. Obfuscación del código Objective-C
- 29. Métodos de anulación C++
- 30. Llamada a varios métodos en Java
"... se basan en C, como ... C#, Java ..." - ¿Lo son? Creo que esto se limita a llaves y puntos y comas en esos casos. – sellibitze
de acuerdo, la semejanza de sintaxis no significa que se basan en C incluso si pudieran ser (o podrían haber sido como C++); C no tiene métodos.C++ y Objective-C pueden llamar a las funciones C y vincularlas a bibliotecas escritas en C sin problemas. – ShinTakezou