Kriptus

Ayuda Informatica y Programacion Visual Basic .Net C# ASP.NET Delphi …, Linux y Windows

Archivo para la 'Programacion en C' Categoria


¿Que lenguaje de programacion es mejor Aprender?

Escrito por kriptus on 5th Agosto 2008

Todas las veces que a mi me han hecho esta pregunta, siempre he respondido lo mismo; el lenguaje que hoy en dia es mejor aprender es C (si, c puro y duro).

Se que mucha gente me dira que si estoy loco, que si C ya esta desfasado, que no hace uso de la gran programacion orientada a objetos, etc, etc. A lo que yo respondo, si aprendes C bien aprendido, y despues aprendes bien los conceptos de programacion orientada a objetos, con poquisimo esfuerzo ya sabes programar C++, PHP, javascript, entre otros.

Luego si quieres avanzar y ponerte al dia con las nuevas tecnologias de programacion existentes hoy en dia, no te creas que te va a ser muy dificil dar el siguiente paso y aprender C# y java (estos son practicamente lo mismo, salvo algunas pequeñas diferencias, faltaria mas…).

Tambien si sabes C, puedes hacer tus programas para windows y para linux.

Asi que, como conclusion a dia de hoy, el mejor lenguaje para aprender a programar es C.

Segun mi opinion. ;)

Escrito en General, Programacion en C | Sin Comentarios »

Usar una dll escrita en dev-cpp en visual basic .net

Escrito por kriptus on 8th Febrero 2008

Como hace unos dias prometi que escribiria un ejemplo de como usar una dll escrita en c con el entorno de programacion dev-cpp aqui pongo lo prometido.

Codigo escrito en c, dllmain.c

C:
  1. #include "dll.h"
  2. #include <windows.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <conio.h>
  6. #include <string.h>
  7.  
  8.  
  9. DLLIMPORT __stdcall void hola ()
  10. {
  11. printf("hola\n");
  12. }
  13.  
  14. DLLIMPORT __stdcall int suma(int a, int b)
  15. {
  16.     return (a+b);
  17. }
  18.  
  19. DLLIMPORT __stdcall char* cadena(char* s)
  20. {
  21.           strcat(s,"b");
  22.           return (s);
  23.           }
  24.    
  25.  
  26.  
  27. BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
  28.                        DWORD reason        /* Reason this function is being called. */ ,
  29.                        LPVOID reserved     /* Not used. */ )
  30. {
  31.     switch (reason)
  32.     {
  33.       case DLL_PROCESS_ATTACH:
  34.         break;
  35.  
  36.       case DLL_PROCESS_DETACH:
  37.         break;
  38.  
  39.       case DLL_THREAD_ATTACH:
  40.         break;
  41.  
  42.       case DLL_THREAD_DETACH:
  43.         break;
  44.     }
  45.  
  46.     /* Returns TRUE on success, FALSE on failure */
  47.     return TRUE;
  48. }

codigo dll.h

C:
  1. #ifndef _DLL_H_
  2. #define _DLL_H_
  3.  
  4. #if BUILDING_DLL
  5. # define DLLIMPORT __declspec (dllexport)
  6. #else /* Not BUILDING_DLL */
  7. # define DLLIMPORT __declspec (dllimport)
  8. #endif /* Not BUILDING_DLL */
  9.  
  10.  
  11. DLLIMPORT __stdcall void hola (void);
  12. DLLIMPORT __stdcall int suma(int, int);
  13. DLLIMPORT __stdcall char* cadena(char*);
  14.  
  15.  
  16. #endif /* _DLL_H_ */

Y a continuacion pongo el codigo que llama a la dll desde visual basic .net

VB.NET:
  1. Imports System.Runtime.InteropServices
  2. Module Module1
  3.     Private Declare Function cadena Lib "c:\dev-cpp\Proyecto1.dll" (ByVal s As String) As String
  4.     Private Declare Sub hola Lib "c:\dev-cpp\Proyecto1.dll" ()
  5.     Private Declare Function suma Lib "c:\dev-cpp\Proyecto1.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
  6.     Sub Main()
  7.         Dim i As Integer
  8.         i = suma(5, 4)
  9.         hola()
  10.         Console.WriteLine("Resultado: " & i)
  11.         Dim ss As String = "a"
  12.         Console.WriteLine("Resultado: " & cadena(ss))
  13.         Console.ReadKey()
  14.  
  15.     End Sub
  16.  
  17. End Module

Escrito en Programacion en C, Visual Basic .NET | 1 Comentario »

 
ecoestadistica.com Email de contacto: kriptus@gmail.com

Foro Ayuda Informatica y Programacion