导航
  • 主页
  • VC综合技术
  • MFC新技术
  • 互联网技术
  • .NET 技术
  • VC/MFC界面
  • VC/MFC 进程
  • VC/MFC 数据库
  • VC++技术资源

inline fun 問題. 馬上結算. 歡迎探討

smartKen 2004-04-07 02:11:57
unresolved external symbol "protected: unsigned char __thiscall CPersonalParameProc::ReadPersonalPsw(unsigned char const * *)const " (?ReadPersonalPsw@CPersonalParameProc@@IBEEPAPBE@Z)
Debug/KTS.exe : fatal error LNK1120: 1 unresolved externals

CPersonalParameProc 這個類是我自己編寫的類. ReadPersonalPsw(unsigned char const * *)const 這個函數定義為inline . 這裡有個問題, 如果該函數的實現寫在.h 裡面, 能夠編譯通過. 如果寫在.cpp文件裡面. 編譯通不過.錯誤如上面.

該問題困擾我好久. 不知道什麼原因.因為在我自己寫的類裡面. 這個問題不是會一直存在. 而是經常出現. 大家探討一下. 是不是有什麼條件使用inline . 開始的時候我乾脆就在.h裡面完成. 但是現在我這個類有100多個這樣的inline 小函數. 寫在.h裡面實在不美觀. 這裡先謝謝大家了. 講到一點道理的得分.
...全文
28 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
x0554 2004-04-10
关注ing...
回复
accpwww 2004-04-08
把函数体写在类的都文件里的话,就算不加inline也自动是内联函数
回复
smartKen 2004-04-08
我分開寫. 在實現的地方有inline .但是, 編譯的時候報找不到函數體. 真的不知道為什麼. 這個問題不是經常出現. 但是會出現. 就像我們使用多重繼承的時候. 編譯的時候跟操作系統有關係. 有時候可以編譯通過.有時候不可以編譯通過. 其實,inline 我也比較熟悉. 但是,問題就這樣. 看來還是放在類定義的.h文件裡面了. 當然, 這個問題,我不知道你們有沒有碰到過.也許是我比較倒楣吧? 問題的確存在. 就是沒辦法. 公司的同事也碰到過.大家都不知道. 是不是編譯器的配置問題. 還是 操作系統的問題.... 煩ing......
回复
_foo 2004-04-07
另,如果把函数体写在类定义里的话,就算不加inline也自动是内联函数。
回复
_foo 2004-04-07
关键字inline必须与函数定义体放在一起才能使函数成为内联,仅将inline放在函数声明前面不起任何作用。如下风格的函数Foo不能成为内联函数:
inline void Foo(int x, int y); // inline仅与函数声明放在一起
void Foo(int x, int y)
{

}
而如下风格的函数Foo则成为内联函数:
void Foo(int x, int y);
inline void Foo(int x, int y) // inline与函数定义体放在一起
{

}
回复
mjm_d 2004-04-07
写在 。h中 除非 自由一个文件调用他可以在其中实现
回复
同桌老王 2004-04-07
这样写什么问题都没有,实在不知道你什么问题。
回复
同桌老王 2004-04-07
class A{
public :
inline void proc();
};
inline void A::proc()
{

}
回复
smartKen 2004-04-07
100 多個成員函數都寫在這裡嗎? 好線不適合吧? 雖然代碼就那麼1--3行. 但是我覺得還是不美觀. 別人看程序可能會不好.
回复
chinaboywuhan 2004-04-07
作为类的内联函数一般都和类的声明在同一个头文件中,以方便编译器可以找到内联的定义,以便在类的对象里面展开。
而其它的内联就不用了,只要编译器能找到就可以啦。
回复
smartKen 2004-04-07
人氣不旺. 自己頂一下. 灌注結果....
回复
快乐鹦鹉 2004-04-07
在.h中定义成static,在.cpp中用inline。有个网友给我发的程序中就是这么写的。
回复
smartKen 2004-04-07
但是我也可以寫在cpp 裡面啊.... 其實我程序裡面大多數inline 都寫在cpp裡面. 比如我的CListCtrlEx :public CListCtrl . 這裡就不會有問題.
回复
x0554 2004-04-07
但是有時可以寫在cpp中, 關注ing
回复
enoloo 2004-04-07
inline 函数应该写在.h文件里面
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

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

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