找不到DllRegisterServer的输入点,为什么啊?

银点 2010-04-11 05:19:31
能加载DLL,但是找不到DllRegisterServer的输入点,为什么啊?

// DllRegisterSever
//
// Handle the registration of this filter
//
STDAPI DllRegisterServer()
{
return AMovieDllRegisterServer2( TRUE );

} // DllRegisterServer


//
// DllUnregisterServer
//
STDAPI DllUnregisterServer()
{
return AMovieDllRegisterServer2( FALSE );

} // DllUnregisterServer


//
// DllEntryPoint
//
extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE, ULONG, LPVOID);

BOOL APIENTRY DllMain(HANDLE hModule,
DWORD dwReason,
LPVOID lpReserved)
{
return DllEntryPoint((HINSTANCE)(hModule), dwReason, lpReserved);
}

...全文
4540 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
银点 2010-04-12
  • 打赏
  • 举报
回复
上边搞错了,解决的关键是.def的文件

.def文件中的内容如下:
LIBRARY NetReceiver.dll

EXPORTS
DllMain PRIVATE
DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE

那个LIBRARY 的文件名要和工程输出的动态库的文件一致
银点 2010-04-12
  • 打赏
  • 举报
回复
问题解决了:
菜单:Project->Settings
左边Setting for中选中DllRegisterServer函数所在的.cpp文件
右边"C/C++"Tab 的Categary下拉框中选中Recompiled Headers
下边单选选“Automatic use of precompiled headers”Through Headers:“streams.h”

就可以了,不能使用默认的StdAfx.h。因为我写的是directshow 的程序。谢谢各位。
lsupper 2010-04-12
  • 打赏
  • 举报
回复
在那个地方TRACE("12324"); 用DBVIEW 查看信息~~~~~~~~
SullenSun 2010-04-12
  • 打赏
  • 举报
回复
用regsvr32调试,看能不能进去。。
Jimmy_Xia 2010-04-12
  • 打赏
  • 举报
回复
LZ是否能说的详细些?什么环境?如何出现的问题?
oyljerry 2010-04-11
  • 打赏
  • 举报
回复
STDAPI 宏是怎么定义的,是否有预编译条件来进行导出等
etdaiyng 2010-04-11
  • 打赏
  • 举报
回复
哈哈 有点意思
sgzwiz 2010-04-11
  • 打赏
  • 举报
回复
    return AMovieDllRegisterServer2( TRUE );
在该行下断,断下后看栈里的调用情况

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧