[英]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.