точка входа не найдена в Windows DLL при использовании regsvr32 - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь создать DLL в Visual C ++ express 2008. Мой проект DLL компилируется нормально, и создается * .dll. Однако, когда я пытаюсь зарегистрировать его в regsvr32, я получаю следующее сообщение об ошибке:

"Модуль name.dll был загружен, но не найден элемент ввода, DllUnregisterServer" (сообщение выглядит примерно так, я перевожу его из испанской версии Windows).

Я использую Windows 7 64 бит O.S. Но я думаю, что * .dll создается в 32-битной из-за моей версии Visual C ++ Express ...

Её код:

DLL.h

#ifndef DLLHEADER_H_INCLUDED
#define DLLHEADER_H_INCLUDED

#ifdef DLL_EXPORTS
 #define DLL_API __declspec(dllexport)
#else
 #define DLL_API __declspec(dllimport)
#endif

extern "C"
{
 struct DLL_API Datos
 {
  char cad1[100];
  char cad2[100];
  char cad3[100];
 };

 DLL_API void __stdcall funcion(char*);
 DLL_API void __stdcall saludo(void);
}

#endif

DLL.cpp

#include "stdafx.h"
#include "DLL.h"

void __stdcall funcion(char* ptr)
{
 Datos* d = (Datos*)ptr;

 std::cout<<"DESDE LA DLL : \n";
 std::cout<<"Cadena1 : "<<d->cad1<<'\n';
 std::cout<<"Cadena1 : "<<d->cad2<<'\n';
 std::cout<<"Cadena1 : "<<d->cad3<<'\n';
}

void _stdcall saludo(void)
{
 std::cout<<"Hola desde DLL.\n";
}

Я создал проект, следуя инструкции MSDN, и шаблон также добавляет этот файл:

dllmain.cpp

// dllmain.cpp : Define el 'entry point' para la aplicación DLL.
#include "stdafx.h"

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;
}

Насколько я понимаю, все хорошо, но, видимо, я не могу зарегистрировать * .dll.

Чего-то не хватает?

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 26 марта 2012

regsvr32 используется только с серверами ActiveX / COM.Ваша DLL не является COM-сервером, поэтому нет смысла вызывать regsvr32 для вашей DLL в первую очередь, так как нечего регистрировать / отменять регистрацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...