Developer forums (C::B DEVELOPMENT STRICTLY!) > CodeCompletion redesign

Please help me fix it, I find the reasons!

(1/4) > >>

Loaden:
I found that VC compiler auto-complete function can not be used for it.
Because the VC header files is special, example:

--- Code: ---class ATL_NO_VTABLE CHyperLinkImpl : public ATL::CWindowImpl< T, TBase, TWinTraits >
{
public:
LPTSTR m_lpstrLabel;
LPTSTR m_lpstrHyperLink;

HCURSOR m_hCursor;
HFONT m_hFont;
HFONT m_hFontNormal;
--- End code ---
if remove ATL_NO_VTABLE, it's became:

--- Code: ---class CHyperLinkImpl : public ATL::CWindowImpl< T, TBase, TWinTraits >
{
public:

--- End code ---

it's work fine!
Have any way to fix it?
Thanks!!

MortenMacFly:

--- Quote from: Loaden on May 31, 2009, 06:15:08 pm ---Have any way to fix it?

--- End quote ---
You can try the CC replacements -> replace ATL_NO_VTABLE with "" (nothing).
Settings -> Editor -> CC & Symbols browser -> Tab "C++ parser" -> Add a "replacement" token.

Loaden:

--- Quote from: MortenMacFly on May 31, 2009, 08:34:57 pm ---
--- Quote from: Loaden on May 31, 2009, 06:15:08 pm ---Have any way to fix it?

--- End quote ---
You can try the CC replacements -> replace ATL_NO_VTABLE with "" (nothing).
Settings -> Editor -> CC & Symbols browser -> Tab "C++ parser" -> Add a "replacement" token.

--- End quote ---
Thanks!
But i can't add replacement ATL_NO_VTABLE with nothing.


[attachment deleted by admin]

ollydbg:
In the ccoptiondlg.cpp.


--- Code: ---bool CCOptionsDlg::ValidateReplacementToken(wxString& from, wxString& to)
{
    wxRegEx re(_T("[A-Za-z_]+[0-9]*[A-Za-z_]*"));
    from.Trim(true).Trim(false);
    to.Trim(true).Trim(false);
    if (!re.Matches(from) || !re.Matches(to))
    {
        cbMessageBox(_("Replacement tokens can only contain alphanumeric characters and underscores..."),
                    _("Error"), wxICON_ERROR);
        return false;
    }
    return true;
}
--- End code ---

That's the cause of your problem.

Loaden:

--- Quote from: ollydbg on June 01, 2009, 05:31:55 am ---In the ccoptiondlg.cpp.


--- Code: ---bool CCOptionsDlg::ValidateReplacementToken(wxString& from, wxString& to)
{
    wxRegEx re(_T("[A-Za-z_]+[0-9]*[A-Za-z_]*"));
    from.Trim(true).Trim(false);
    to.Trim(true).Trim(false);
    if (!re.Matches(from) || !re.Matches(to))
    {
        cbMessageBox(_("Replacement tokens can only contain alphanumeric characters and underscores..."),
                    _("Error"), wxICON_ERROR);
        return false;
    }
    return true;
}
--- End code ---

That's the cause of your problem.

--- End quote ---
Thanks!
I comment this code, and do it ok.
Now, class ATL_NO_VTABLE CHyperLinkImpl : public ATL::CWindowImpl< T, TBase, TWinTraits > is OK!

But, other headers, egg. string winuser.h, i don't know how to make it work.

--- Code: ---WINUSERAPI
int
WINAPI
MessageBoxA(
    __in_opt HWND hWnd,
    __in_opt LPCSTR lpText,
    __in_opt LPCSTR lpCaption,
    __in UINT uType);
WINUSERAPI
int
WINAPI
MessageBoxW(
    __in_opt HWND hWnd,
    __in_opt LPCWSTR lpText,
    __in_opt LPCWSTR lpCaption,
    __in UINT uType);
#ifdef UNICODE
#define MessageBox  MessageBoxW
#else
#define MessageBox  MessageBoxA
#endif // !UNICODE
--- End code ---

Navigation

[0] Message Index

[#] Next page

Go to full version