На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
Страницы: (20) « Первая ... 11 12 [13] 14 15 ...  19 20 все  ( Перейти к последнему сообщению )  
> Проблемы перехода на Visual Studio 2005/2008 с более ранних версий , FAQ
    я где-то рассказывал про баг с CString-ами..
    типа у них общий буфер получается..

    вот пример.. проверьте плз.. может просто студия у меня кривая...

    Добавлено
    в поле надо ввести чтонить типа c:\test\test.test
    Прикреплённый файлПрикреплённый файлCStringBug.rar (41.02 Кбайт, скачиваний: 565)
      А где вызов GetBuffer() до ReleaseBuffer()? Это называется "подлый приемчик". После добавления предварительного вызова GetBuffer() все встало на место.
        а нафига вызывать GetBuffer(), если я скопировал объект... в 6-й студии или в 2003 мой пример работает..

        Добавлено
        лучше другой конструктор CString-а просто вызывать...
          Цитата Muran @
          а нафига вызывать GetBuffer()

          Потому что иначе вызов ReleaseBuffer() незаконен.
          Цитата MSDN

          void ReleaseBuffer(
          int nNewLength = -1
          );
          Releases control of the buffer allocated by GetBuffer.
            ok
              Вопрос по редактору студии.
              Никто не знает, как у него делается обратный tab ? То есть обычные переход на указанное в настройках количество пробелов вперед, а назад как ? Знаю что есть, но в упор забыл эту конбинацию клавиш. А то очень проблемно получается когда большой кусок скопируюешь, а у него формитирование сбивается на 1-2 таба вперед уходит.
              Сообщение отредактировано: Devilguard -
                Цитата Devilguard @
                То есть обычные переход на указанное в настройках количество пробелов вперед, а назад как ?

                Shift+Tab
                  Проблемы с unresolved external symbol...

                  В файле main.cpp есть функция

                  ExpandedWrap disabled
                    void SetMouseCapture(){
                        //ограничение перемещения мыши границами окна
                        SetCapture(hWnd);
                        RECT rect, rect_screen;
                        POINT tmpPt;
                        GetClientRect(hWnd, &rect);
                        tmpPt.x = rect.left;
                        tmpPt.y = rect.top;
                        ::ClientToScreen(hWnd, &tmpPt);
                        rect_screen.left = tmpPt.x;
                        rect_screen.top = tmpPt.y;
                        tmpPt.x = rect.right;
                        tmpPt.y = rect.bottom;
                        ::ClientToScreen(hWnd, &tmpPt);
                        rect_screen.right = tmpPt.x;
                        rect_screen.bottom = tmpPt.y;
                        ::ClipCursor(&rect_screen);
                    }


                  Вылазит ошибка:
                  ExpandedWrap disabled
                    error LNK2019: unresolved external symbol __imp__ClipCursor@4 referenced in function "void __cdecl SetMouseCapture(void)" (?SetMouseCapture@@YAXXZ)
                    to Syberian:
                    ExpandedWrap disabled
                      #pragma comment(lib, "User32.lib")
                    Сообщение отредактировано: Мальчиш -
                      2 Мальчишь:
                      Про for я не понял... Его куда, такого некрасивого???
                        :lool: :lool: :lool: :lool: :lool: :lool: :lool: :lol: :lol: :lol: :lol: :lol: :lool: :lool: :lool: :lool:

                        Добавлено
                        это подпись :whistle:
                          Теперь у меня external'ы полезли в другом месте:
                          ExpandedWrap disabled
                            glaux.Lib(tkdib.obj) : error LNK2019: unresolved external symbol __imp__SetDIBits@28 referenced in function _tkDIBImageLoadAW@8


                          И дофига причем :blink:
                            добавь
                            ExpandedWrap disabled
                              #pragma comment(lib, "Gdi32.lib")
                              Собираю проект в 2005 Студии. Представляет он собой тришкин кафтан: и из 6.0 версии и из 2003 и из 2005.

                              Лезет следующая ошибка линковки
                              ExpandedWrap disabled
                                atlsd.lib(atltrace.obj) : error LNK2005: "unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA) already defined in itcrutil.lib(itstring.obj)


                              Прошу помощи!
                                И так граждане товарищи, как я и обещал я нашел решение проблемы под Висту!
                                ;)
                                Вот код который помогает решить вопросы Связанные с GetBestRoute(...):
                                //////////////////////////////////////////////

                                MIB_IPFORWARDROW BestRoute;
                                gw = 0;
                                UInt32 ret = GetBestRoute(destAddr,0,&BestRoute);
                                if(ret != NO_ERROR)
                                {
                                return false;
                                }
                                //if not local route(ret =4)
                                if (BestRoute.dwForwardType == 4)
                                {
                                gw = BestRoute.dwForwardNextHop;
                                GetBestRoute(gw,0,&BestRoute);
                                }

                                selfAddr = BestRoute.dwForwardNextHop;
                                return bSuccess;
                                /////////////////////////////////////////////

                                А вот добавленный код для Висты и прочего послед. мелкомягкого продукта:


                                if ( selfAddr == 0 ) {
                                #if WINVER >= 0x0501 // Windows Vista 0x0501 or 0x0600
                                //DWORD BestIfIndex;
                                //GetBestInterface(gw, &BestIfIndex);

                                // through the local ip address table find out one best route match .
                                PMIB_IPADDRTABLE pIpAddrTable = NULL;
                                ULONG addrTableSize = 0;
                                bool bSuccess = false;

                                // allocate the space
                                if (ERROR_INSUFFICIENT_BUFFER == GetIpAddrTable(NULL, &addrTableSize, FALSE))
                                {
                                pIpAddrTable = (PMIB_IPADDRTABLE) new char [addrTableSize];
                                }
                                else
                                {
                                return false; // can't find source address for destination
                                }

                                if (NO_ERROR == GetIpAddrTable(pIpAddrTable, &addrTableSize, FALSE))
                                {
                                // try to find a match
                                for (DWORD i=0; i<pIpAddrTable->dwNumEntries; i++)
                                {
                                MIB_IPADDRROW &entry = pIpAddrTable->table[i];

                                if(entry.dwIndex == BestRoute.dwForwardIfIndex)
                                {
                                if ( (entry.dwAddr & entry.dwMask) == (gw & entry.dwMask) ) {
                                selfAddr = entry.dwAddr;
                                bSuccess = true;
                                } else if( selfAddr == 0 ) {
                                selfAddr = entry.dwAddr;
                                bSuccess = true;
                                }
                                }
                                }
                                }

                                delete [] (char *) pIpAddrTable;
                                return bSuccess;

                                #endif // WINVER >= VISTA


                                Надеюсь кому-то это поможет!
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (20) « Первая ... 11 12 [13] 14 15 ...  19 20 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0457 ]   [ 15 queries used ]   [ Generated: 17.06.25, 03:56 GMT ]