最近在編譯一個就的程式的時候出現了一個 Linker Error
Unresolved external '__stdcall System::AnsiString::ThrowIfOutOfRange(int) const'
仔細的去查了程式碼發現問題發生的原因是在程式中使用了
AnsiString 的 operator[]
在網路上找了幾天之後發現這個問題從BCB5就存在
解決的方法是
1. 在option -> Advanced Compiler -> Calling convention 改用 C
或是
2. 直接修改dstring.h
我的檔案是位在$(BCB)\Include\Vcl\dstring.h (208行)
將void ThrowIfOutOfRange(int idx) const;改成
void __cdecl ThrowIfOutOfRange(int idx) const;