Borland C++ 5.02 IDE 中的 bug (轉)

gugu99發表於2008-07-18
Borland C++ 5.02 IDE 中的 bug (轉)[@more@]

Borland C++ 5.02 中的一個

from

DarkSpy在Borland C++新聞組看到關於Borland C++ 5.02 IDE中的一個bug。

這個bug將會讓產生出錯資訊“(1,1) Bad file record in module xxx near module offset 0x........”。
DarkSpy也試驗了一下,確實是一個問題。

如果有Borland C++的fans的話,也不妨試驗一下,具體步驟如下。

建立一個工程,目標為MS-DOS程式,工程名字就叫tm_terror,

然後,建立一個頭:terror.h,裡面寫上程式碼:
#ifndef terr_h
#define terr_h

namespace foo
{
template
inline T absolute(T number)
{
if(number < T(0) ) return -number;
return number;
}
}

#endif

然後,建立:terror.cpp,寫上程式碼:
#include "terror.h"

namespace foo2
{
using foo::absolute;

int do_test(int i)
{ return absolute(i); }
}

然後,在工程檔案:tm_terror.cpp中,寫上程式碼:
namespace foo2
{ int do_test(int); /* to spare a header, declaration */ }

int main()
{
return foo2::do_test(0);
}

注意,工程中,terror.cpp必須要在tm_terror.cpp上面,不是的話則用alt+up鍵提上去。

然後,編譯,你就會發現這個錯誤顯示。:)

如何解決?

1) 在 template 中不要使用 "using namespace::name;" ,要用 "using namespace;";
2) 在 IDE 中關閉 "Generate debug information" 選項。

雖然如此,Borland C++ 5.02 仍然不失為一款強勁的編譯器,DarkSpy一直使用的就是這個。:)

DarkSpy 2001/6/3


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1007457/,如需轉載,請註明出處,否則將追究法律責任。

相關文章