SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Se trata de crear una dll dinámica con C++ en el cual hace una operación matemática y lee un
mensaje de texto.
Creamos un proyecto nuevo de la dll que lo llamo en este caso Super_DLL.
Crear código en Super_dll.cpp.
extern "C" {
__declspec(dllexport) int WINAPI Suma(int, int);
__declspec(dllexport) LPTSTR WINAPI Mensaje();
};
// Suma.
int WINAPI Suma(int a, int b) { return a + b; }
// Mensaje.
LPTSTR WINAPI Mensaje() { return LPTSTR(L"Hola. Soy una DLL Win32."); }
Crear un archivo de texto llamado Super_dll.def en Archivos de origen.
Llamamos al archivo de texto Super_dll.def.
Dentro del archivo rellenar estos códigos.
LIBRARY Super_dll
EXPORTS
Suma
Mensaje
Proyectos -> Propiedades.
Escribir Super_dll.
Pulsa botón Macros>>
Pulsar Aplicar y Aceptar.
Agregamos un nuevo proyecto en Visual C#.
Arrastramos dos etiquetas o labels en el formulario.
Vemos el código del formulario y introducimos este.
using System;
using System.Runtime.InteropServices; // No olvidar.
using System.Windows.Forms;
namespace Interfaz_cs
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = Marshal.PtrToStringAuto(SUPER_DLL.Mensaje());
label2.Text = SUPER_DLL.Suma(1764, -764).ToString();
}
internal class SUPER_DLL
{
[DllImport("Super_dll.dll")]
extern static public int Suma(int a, int b);
[DllImport("Super_dll.dll")]
extern static public IntPtr Mensaje();
}
}
}
Borrar código de abajo en dllmain.cpp
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Queda así abajo.
Establecer como proyecto.
En el proyecto Super_dll dar Compilar.
Una vez compilado la DLL llamada Super_dll.dll vamos al directorio para arrastrarla a otro
directorio, o simplemente lo copiamos y pegamos en otro lugar.
En este caso está aquí la dll compilada.
C:UsersMetaDocumentsVisual Studio 2017ProjectsSuper_dllDebug
Al copiar el archive Super_dll.dll, lo pegamos en el proyecto, precisamente en el ejecutable de
la interfaz de C#, llamado Interfaz_cs.exe.
Super_dll.dll al lado de Interfaz_cs.exe
Pulsar F5 y ejecutar la aplicación.
http://electronica-pic.blogspot.com/

Más contenido relacionado

Similar a Crear una dll en C++ y llamarla con la interfaz C#

Similar a Crear una dll en C++ y llamarla con la interfaz C# (20)

Actividad dll
Actividad dllActividad dll
Actividad dll
 
De algoritmo a programa en c++
De algoritmo a programa en c++De algoritmo a programa en c++
De algoritmo a programa en c++
 
Lazarus
LazarusLazarus
Lazarus
 
Tutorial code block
Tutorial code blockTutorial code block
Tutorial code block
 
Ejercicios con Funciones en programación I C++
Ejercicios con Funciones en programación I C++Ejercicios con Funciones en programación I C++
Ejercicios con Funciones en programación I C++
 
PROGRAMACION
PROGRAMACIONPROGRAMACION
PROGRAMACION
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)
 
Manual de android
Manual de androidManual de android
Manual de android
 
C sharp manual
C sharp manualC sharp manual
C sharp manual
 
C sharp manual
C sharp manualC sharp manual
C sharp manual
 
C sharp manual[1]
C sharp manual[1]C sharp manual[1]
C sharp manual[1]
 
C sharp manual
C sharp manualC sharp manual
C sharp manual
 
Algoritmos para c#
Algoritmos para c#Algoritmos para c#
Algoritmos para c#
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
 
Vbnet2010 ejerciciosdeconsola
Vbnet2010 ejerciciosdeconsolaVbnet2010 ejerciciosdeconsola
Vbnet2010 ejerciciosdeconsola
 
Aplicación zirconia
Aplicación zirconiaAplicación zirconia
Aplicación zirconia
 
Appvideo
AppvideoAppvideo
Appvideo
 
Intro2
Intro2Intro2
Intro2
 

Más de Ángel Acaymo M. G.

Luz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirLuz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirÁngel Acaymo M. G.
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Ángel Acaymo M. G.
 
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AManual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AÁngel Acaymo M. G.
 
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84APic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84AÁngel Acaymo M. G.
 

Más de Ángel Acaymo M. G. (8)

Arduino consola y puerto serie
Arduino consola y puerto serieArduino consola y puerto serie
Arduino consola y puerto serie
 
Luz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirLuz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular Senpir
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.
 
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AManual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
 
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84APic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
 
Manual Ic Prog
Manual Ic ProgManual Ic Prog
Manual Ic Prog
 
Manual básico WinPic800
Manual básico WinPic800Manual básico WinPic800
Manual básico WinPic800
 
Manual básico Minicom
Manual básico MinicomManual básico Minicom
Manual básico Minicom
 

Último

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsCZSOTEC
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 

Último (7)

Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Se realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios WindowsSe realiza instalacion y configuraacion servicios Windows
Se realiza instalacion y configuraacion servicios Windows
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 

Crear una dll en C++ y llamarla con la interfaz C#

  • 1. Se trata de crear una dll dinámica con C++ en el cual hace una operación matemática y lee un mensaje de texto. Creamos un proyecto nuevo de la dll que lo llamo en este caso Super_DLL.
  • 2. Crear código en Super_dll.cpp. extern "C" { __declspec(dllexport) int WINAPI Suma(int, int); __declspec(dllexport) LPTSTR WINAPI Mensaje(); }; // Suma. int WINAPI Suma(int a, int b) { return a + b; } // Mensaje. LPTSTR WINAPI Mensaje() { return LPTSTR(L"Hola. Soy una DLL Win32."); }
  • 3. Crear un archivo de texto llamado Super_dll.def en Archivos de origen.
  • 4. Llamamos al archivo de texto Super_dll.def.
  • 5. Dentro del archivo rellenar estos códigos. LIBRARY Super_dll EXPORTS Suma Mensaje
  • 8. Pulsar Aplicar y Aceptar. Agregamos un nuevo proyecto en Visual C#.
  • 9.
  • 10. Arrastramos dos etiquetas o labels en el formulario.
  • 11. Vemos el código del formulario y introducimos este. using System; using System.Runtime.InteropServices; // No olvidar. using System.Windows.Forms; namespace Interfaz_cs { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { label1.Text = Marshal.PtrToStringAuto(SUPER_DLL.Mensaje()); label2.Text = SUPER_DLL.Suma(1764, -764).ToString(); } internal class SUPER_DLL { [DllImport("Super_dll.dll")] extern static public int Suma(int a, int b); [DllImport("Super_dll.dll")] extern static public IntPtr Mensaje(); } } }
  • 12. Borrar código de abajo en dllmain.cpp BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } Queda así abajo.
  • 13. Establecer como proyecto. En el proyecto Super_dll dar Compilar.
  • 14. Una vez compilado la DLL llamada Super_dll.dll vamos al directorio para arrastrarla a otro directorio, o simplemente lo copiamos y pegamos en otro lugar. En este caso está aquí la dll compilada. C:UsersMetaDocumentsVisual Studio 2017ProjectsSuper_dllDebug Al copiar el archive Super_dll.dll, lo pegamos en el proyecto, precisamente en el ejecutable de la interfaz de C#, llamado Interfaz_cs.exe. Super_dll.dll al lado de Interfaz_cs.exe
  • 15. Pulsar F5 y ejecutar la aplicación. http://electronica-pic.blogspot.com/