繁体   English   中英

使用regsvr32时,在windows dll中找不到入口点

[英]no entry point found in windows dll while using regsvr32

我正在尝试在Visual C ++ express 2008中创建一个DLL。我的DLL proyect编译正常,并且创建了* .dll。 但是,当我尝试使用regsvr32注册它时,我收到以下错误消息:

“加载了name.dll模块,但找不到条目ponint,DllUnregisterServer”(消息就是这样,我正在从我的西班牙语版Windows中翻译它)。

我正在使用Windows 7 64位操作系统但我认为* .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教程后创建了proyect,模板也添加了这个文件:

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。

缺少什么?

谢谢你的帮助。

regsvr32仅用于ActiveX / COM服务器。 您的DLL不是COM服务器,因此首先为您的DLL调用regsvr32是没有意义的,因为没有任何注册/取消注册。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM