用C++BUILDER編譯時,告知所用的strpcopy函式在兩個頭檔案中都進行了宣告,導致沖突,其中兩個頭檔案和其中對該函式的宣告分別如下:
在System.AnsiString.hpp中的宣告:
extern DELPHI_PACKAGE char * __fastcall StrPCopy(char * Dest, const System::AnsiString Source)/* overload */;
在System.SysUtils.hpp中的宣告:
extern DELPHI_PACKAGE System::WideChar * __fastcall StrPCopy(System::WideChar * Dest, const System::UnicodeString Source)/* overload */;
我用的是c++builder XE6, 在Windows 7(64位)中進行編譯的。
試著注釋掉System.AnsiString.hpp中的該函式宣告,倒是能通過編譯。但怕以后會產生其他不良后果。
有沒有其他更好的方法?
uj5u.com熱心網友回復:
加個命名空間Sysutils::StrPCopy ("","");
uj5u.com熱心網友回復:
using 可不可以?我也沒用過uj5u.com熱心網友回復:
好的,我試試。謝謝!uj5u.com熱心網友回復:
首先是不建議修改系統自帶的頭檔案。StrPCopy雖然有兩個原型,但是通過引數型別的不同很容易確定呼叫哪一個。你原始的代碼是什么?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/85957.html
標籤:VCL組件使用和開發
下一篇:如何做一個類似于MFC的工具箱
