@@@@@@@@@@@@@@@@@@@@如何调用自已写的dll?

fajili 2001-12-04 10:04:39
本人初学dll,在CApp应用类内调用AfxMessageBox();我想在自已编写的程序里调用我刚才写的dll,弹出那个对话框,请指教如何实现,分数不够可以再加.
...全文
183 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fajili 2001-12-21
  • 打赏
  • 举报
回复
问题没解决,但还是要感谢各位的参与。给分了!
woowindicevc 2001-12-16
  • 打赏
  • 举报
回复
upuup
HoverInTheSky 2001-12-05
  • 打赏
  • 举报
回复
对不起,贴错了
在mainfrm.h中加上extern "C" __declspec(dllimport) void display();
找到你的dll中定义(.h)和实现(.cpp)的地方,在前面加上extern "C" __declspec(dllexport)
即extern "C" __declspec(dllexport) void display()
把你先前生成的“项目名.dll”和“项目名.lib”文件考到你第二个项目的debug目录或release目录下
dllimport是导出函数,dllexport是导入函数,你可以这样理解,具体到MSDN里查
woowindicevc 2001-12-05
  • 打赏
  • 举报
回复
extern "C" __declspec(dllimport)起什么作用?
woowindicevc 2001-12-05
  • 打赏
  • 举报
回复
extern "C" __declspec(dllimport)
是什么意思??
dgb 2001-12-05
  • 打赏
  • 举报
回复
KERNEL32.DLL换成你自己的DLL,照你自己的函数格式,声明函数指针(还是指针函数,我也搞不清)
RegisterServiceProcess指的是你DLL库中的函数名称.你可以把它换成你自己的函数.
dgb 2001-12-05
  • 打赏
  • 举报
回复
比较稳妥的方法是用
HINSTANCE hInst = LoadLibrary("KERNEL32.DLL");
if(hInst)
{
typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD);
MYFUNC RegisterServiceProcessFun = NULL;
RegisterServiceProcessFun = (MYFUNC)GetProcAddress(hInst, "RegisterServiceProcess");
if(RegisterServiceProcessFun)
{
RegisterServiceProcessFun(GetCurrentProcessId(),1);
}
FreeLibrary(hInst);
}
这样作应该是可以的.
woowindicevc 2001-12-05
  • 打赏
  • 举报
回复
gzgzgzgz!
jaidy 2001-12-05
  • 打赏
  • 举报
回复
《Visual C++6技术内幕》里面第22章讲的不是很详细吗?你可以去看看嘛!
woowindicevc 2001-12-05
  • 打赏
  • 举报
回复
有没有列子让我看看?fcw2001@hzcnc.com
fajili 2001-12-05
  • 打赏
  • 举报
回复
to:HoverInthesky
我照你的做了,编译时出错:
usedllDlg.obj : error LNK2001: unresolved external symbol __imp__display
Debug/usedll.exe : fatal error LNK1120: 1 unresolved
为什么?
有知道的请帮帮忙!!!!!!!!
guanjinke 2001-12-05
  • 打赏
  • 举报
回复
去看看vcexp.126.com,那里有很详细的介绍,在编程经验里
HoverInTheSky 2001-12-04
  • 打赏
  • 举报
回复
假如你需要在mainfrm.cpp调用dll中的void display()函数
在mainfrm.h中加上extern "C" __declspec(dllimport) void display();
找到你的dll中定义(.h)和实现(.cpp)的地方,在前面加上extern "C" __declspec(dllimport)
即extern "C" __declspec(dllimport)void display()
把你先前生成的“项目名.dll”和“项目名.lib”文件考到你第二个项目的debug目录或release目录下。
ok了


fajili 2001-12-04
  • 打赏
  • 举报
回复
高手,大虾,请快来帮忙。急急!!!!!!!!!!!!!!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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