我在我的动态连接库中使用主程序的类,为何出现连接错误.

96151024 2002-07-22 07:01:34
我在动态连接库中,加入了主程序的"MainFrm.h",使用其中的函数。当时出现了连接
错误:
Files.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMainFrame::SetStep(int)" (?SetStep@CMainFrame@@QAEXH@Z)
Files.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMainFrame::SetRange(int,int)" (?SetRange@CMainFrame@@QAEXHH@Z)
Files.obj : error LNK2001: unresolved external symbol "public: void __thiscall CMainFrame::SetText(char const *)" (?SetText@CMainFrame@@QAEXPBD@Z)

请问我该如何处理?
...全文
5 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
96151024 2002-07-23
我就想在dll里面

使用CMainFrame* pFrameWnd = (CMainFrame*)AfxGetMainWnd();

如果引用他的公共变量没有错,可是不能使用它的公共函数,如果主程序能够生成一个lib的话就可以连接成功了,可是生成exe时能不能生成一个lib,或者
用其他方法,骗过编译器,比如说在dll文件里面定义一个指向CMainFrame的方法。请高手指点
回复
jishiping 2002-07-23
你的方法有问题。先有DLL,然后有EXE。怎么能直接在编译DLL时,就直接
访问EXE的窗口,关系搞反了。如果非要这样的话,CMainFrame应该是放在
DLL里,而不是放在主程序里。
回复
qaymuic 2002-07-23
你应该包括这些函数的实现部分
回复
96151024 2002-07-22
只看到“不 的"
回复
rokia 2002-07-22
你的用法是不對的。( Can you read this sentence?)
回复
rokia 2002-07-22
這個應該是不行的吧。
它們的關係不是繼承關係,這種訪問是有問題的。
你編譯dll時,調用到的函數只有說明沒有定義,在obj裡是找不到的。
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告