首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用regsvr32时在windows dll中找不到入口点

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

Stack Overflow用户
提问于 2012-03-27 02:14:02
回答 1查看 1.6K关注 0票数 0

我正在尝试在Visual C++ Express2008中创建一个DLL。我的DLL proyect编译得很好,并且创建了*.dll。但是,当我尝试向regsvr32注册它时,我得到了以下错误消息:

“name.dll模块已加载,但未找到入口ponint,DllUnregisterServer”(消息类似于此,我正在将其从我的西班牙语版本翻译过来)。

我使用的是Windows764位操作系统,但我认为*.dll是用32位创建的,因为我的版本是Visual C++ Express……

下面是代码:

DLL.h

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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

代码语言:javascript
复制
// 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。

是不是少了点什么?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-03-27 02:35:31

regsvr32仅用于ActiveX/COM服务器。您的动态链接库不是COM服务器,因此一开始就没有必要为您的动态链接库调用regsvr32,因为没有什么需要注册/注销的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9877434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档