elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Crear una dll básica C++ Visual Studio 2013
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear una dll básica C++ Visual Studio 2013  (Leído 2,545 veces)
SubAtomicParticula

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Crear una dll básica C++ Visual Studio 2013
« en: 23 Octubre 2016, 18:13 pm »

Saludos, estoy intentando crear una dll básica en Visual Studio 2013 concretamente en Visual C++ usando un proyecto Win32 dll, pero el proyecto resultante me genera un archivo que luego no puedo llamar desde VBA (Access). Intento registar la dll con regsvr32.exe pero me dice:
Se cargó el módulo "..\BibliotecaDLL.dll pero no se encontró el punto de entrada DllRegisterServer. Asegúrese de que "..\BibliotecaDLL.dll" es un archivo DLL u OCX válido e inténtelo de nuevo.
El proyecto define el BOOL APIENTRY DllMain(..) y una función que he incluido int __declspec(dllexport) Funcion1(). Si alguien puede ayudarme con este problema. Muchas gracias.


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Crear una dll básica C++ Visual Studio 2013
« Respuesta #1 en: 23 Octubre 2016, 18:37 pm »

Hola!

Si quieres usar la DLL desde el código VBA, la misma tiene que estar de 1 de 2 formas:

1) Compilada como objeto ActiveX: En ese caso puedes usar DllRegisterServer para registrar la DLL en el registro de Windows, lo que te permitirá crear los objetos COM que la misma tenga. En ese caso usarías CreateObject o algo parecido. Aquí tienes una guía: https://msdn.microsoft.com/en-us/library/aa229332(v=vs.60).aspx (Aunque es para VS 6.0, debería servirte igual)

2) Compilada como DLL común, con stdcall como calling convention: En este caso creas la dll y la llamas desde el código con LoadLibrary para cargarla y luego a las funciones exportadas de la misma. Más info: https://msdn.microsoft.com/en-us/library/office/bb687850.aspx

Saludos!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

SubAtomicParticula

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Crear una dll básica C++ Visual Studio 2013
« Respuesta #2 en: 23 Octubre 2016, 19:47 pm »

Yo uso la opción 2:

Esta es la declaración del punto de entrada de la dll.
BOOL __stdcall DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)

Y esta es la declaración de la función a exportar.
__declspec(dllexport) int __stdcall Funcion1()

La llamada desde Access VBA la realizo con la declaración:
Public Declare Function Funcion1 Lib "BibliotecaDLL.dll" () As Long
Tal y como declaro cualquier función de la API de Win32 Kernel32, user32, etc.
En Access me lanza el error 48 no se encontró el archivo y registrando la dll en Windows me sigue diciendo que no encuentra el punto de entrada de la dll. Si uso LoadLibrary me devuelve 0, creo que no carga la dll y no se porqué. Muchas gracias.
« Última modificación: 23 Octubre 2016, 20:11 pm por SubAtomicParticula » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Visual Studio 2013 « 1 2 »
Programación C/C++
Vaagish 10 10,032 Último mensaje 12 Marzo 2014, 23:15 pm
por Vaagish
Duda con Visual Studio 2013
Programación General
JonaLamper 5 2,955 Último mensaje 5 Octubre 2015, 01:18 am
por Eleкtro
Instalar openssl en visual studio 2013
Programación C/C++
Kaxperday 0 1,837 Último mensaje 16 Octubre 2015, 10:33 am
por Kaxperday
[duda] directorios vc++ en visual studio 2013
Programación C/C++
colcrt 0 1,807 Último mensaje 17 Diciembre 2015, 03:13 am
por colcrt
cambiar el puerto del servidor en visual studio 2013
.NET (C#, VB.NET, ASP)
Black.scorpion.x 1 3,765 Último mensaje 23 Febrero 2018, 19:22 pm
por Novlucker
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines