На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (8) « Первая ... 6 7 [8]  все  ( Перейти к последнему сообщению )  
> Класс-обертка на чистом С++ , Для использования Ф-ий DLL
    Цитата kms @
    сделал вот так , только вывод идет символов , надо преобразовать каждый символ в шестнадцатеричное число

    Просто поставь там вместо const bool raw = false), – const bool raw)

    Добавлено
    А еще лучше, покажи код
      вот еще один вариант нашел на других сайтах
      ExpandedWrap disabled
        ....
        case HSCLI_ET_ARRA: { // 1 Массив байтов заданной длины
             std::vector<char> arr(p, p + Query1.GetColumnsInfo(j)->len  ) ;
             stream << Char2Hex( arr , Query1.GetColumnsInfo(j)->len ) << " ";
         }
         break;
        .....
            ....
        std::string  Char2Hex(std::vector<char>  i_chars , size_t i_size)
        {
            static char hex_array[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
            std::string result;
            result.resize(i_size * 2);
            for (size_t i = 0; i < i_size; ++i)
            {
                result[2 * i] = hex_array[i_chars[i] / 16];
                result[2 * i + 1] = hex_array[i_chars[i] % 16];
            }
            return result;
        }


      Добавлено
      Цитата Олег М @
      А еще лучше, покажи код

      сейчас секунду

      Добавлено
      ExpandedWrap disabled
        case HSCLI_ET_ARRA: { // 1 Массив байтов заданной длины
            std::vector<char>  arr(p, p + Query1.GetColumnsInfo(j)->len  ) ;
          FormatBinary( stream, &arr, Query1.GetColumnsInfo(j)->len, true);
          //stream << Char2Hex(arr, Query1.GetColumnsInfo(j)->len ) << " ";
            }
            break;
        ...
         
        static void FormatBinary(std::ostream &out, std::vector<char> *data, size_t sz , const bool raw )
        {
            
            if (!sz || !data)
                return;
          
            const size_t _n = (raw ? sizeof("'\\xXX',") : sizeof("XX")) - 1;
            //char buf[(sz * _n) + 1];
            char *buf = new char[(sz * _n) + 1];
            char *psz = buf;
            for (auto end = data + sz; data != end; ++data, psz += _n)
                 sprintf (psz, raw ? "'\\x%02X'," : "%02X", *data);
         
                out << psz;
        }


      Добавлено
      ошибка
      ExpandedWrap disabled
         
        ОшибкаC4996'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.HyTech  c:\users\admin\desktop\3_hytech_2class\hytech\main.cpp  143


      Добавлено
      ошибку нашел
      ExpandedWrap disabled
        #define _CRT_SECURE_NO_WARNINGS


      Добавлено
      теперь запускается но вываливается
      ExpandedWrap disabled
        Вызвано исключение по адресу 0x7710E49B (ntdll.dll) в HyTech.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00000000.
         
        Если для этого исключения имеется обработчик, выполнение программы может быть продолжено безопасно.
        у меня вопрос такой если сейчас оставить в таком виде , то что будет быстрее работать если просто вставлять класс в свое приложение,
        либо упаковать в DLL-ку и использовать DLL
        я понимаю что dll-ка в момент запуска приложения будет получать свой участок в памяти и как бы дополнительных затрат не будет ,
        но все таки может вставить код в свою прогу будет производительней ?
          Цитата kms @
          у меня вопрос такой если сейчас оставить в таком виде , то что будет быстрее работать если просто вставлять класс в свое приложение,
          либо упаковать в DLL-ку и использовать DLL
          я понимаю что dll-ка в момент запуска приложения будет получать свой участок в памяти и как бы дополнительных затрат не будет ,
          но все таки может вставить код в свою прогу будет производительней ?

          Не на том экономишь. В твоем случае не будет. Плюс ко всему - вспомни зачем ты пилишь DLL? Если у тебя ГУИ будет на С++ то можешь не заморачиваться с dll.

          Добавлено
          Вообще какие затраты? Измерь вызов функции из класса и из dll, отпиши тут результаты. Потом подумай - имеет ли такая экономия в твоем случае право на жизнь?
            Цитата KILLER @
            Если у тебя ГУИ будет на С++ то можешь не заморачиваться с dll.

            в таком варианте я понял что лучше лишнюю dll-ку не делать , и вариант на С++/CLI я сделаю просто на классах сразу дергать предоставленные dll-ки hscli.dll

            Цитата KILLER @
            Вообще какие затраты? Измерь вызов функции из класса и из dll, отпиши тут результаты. Потом подумай - имеет ли такая экономия в твоем случае право на жизнь?

            ОК буду пробывать

            KILLER да еще выложил все это хозяйство , https://github.com/vovakms
            там уже учел твои слова #47 правильное программирование БД
            но все равно до конца по правильному доделывать не стал , потому что если делать по правельному то надо синхронизироваться со студией и так далее а MSстудию2015 не каждый захочет устанавливать , а так по простенькому открыл подредактировал посмотрел если что откатился

            если не составит труда посмотри , как что там прокоментируй
              Цитата kms @
              и вариант на С++/CLI я сделаю просто на классах сразу дергать предоставленные dll-ки hscli.dll

              Я ж тебе писал уже, C++/CLI - нужен для написания связующего кода между управляемым и не управляемым. Зачем на нем то писать программу?

              Цитата kms @
              если не составит труда посмотри , как что там прокоментируй

              Ну время как будет, посмотрю.
                KILLER ОК спасибо
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0608 ]   [ 16 queries used ]   [ Generated: 25.04.24, 08:11 GMT ]