簡體   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