Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic: новости сайтов, советы, примеры кодов. Выпуск 258.


Информационный Канал Subscribe.Ru

Visual Basic: новости сайтов, советы, примеры кодов.
Выпуск 258.


VBNet VBMania
Ссылки:

  • Улицы VB
  • Использование VB
  • Азбука VB
  • Улицы VB
  • Кирпичики VB
  • CообЧа VB
  • VB по русски
  • MDesign
  • IgorykSoft
  • DanSoft
  • Господа!!! читайте MSDN!!!

    Несколько слов от автора:

       Новый выпуск...
    Читайте!


    Содержание выпуска




    Новости сайта VBNet

    Дата: 23.04.2004 12:58 | Раздел: Статьи по VB | Автор: Шатохина Н.А.

    Аргумент против SOAP кодирования - Эта статья объясняет, почему SOAP кодирование, также известное как "Section 5 encoding", является тенью от прошлого SOAP, которому нет места в будущем Web сервисов.

    Дата: 21.04.2004 13:06 | Раздел: ActiveX контролы | Автор: UA

    UA Tip Of The Day - Контрол "Совет дня". Контрол выводит "советы дня". Советы записываются в отдельный файл. Имеется возможность настроить интерфейс.

    Дата: 21.04.2004 13:04 | Раздел: Примеры кода | Автор: DismaL

    E-mail2 - Полностью переделанная программа: доработана отправка писем - теперь пересылка с вложениями ; принимает входящую почту (играет мелодию, сообщает вам); возможность отсылать почту с вложением через Outlook ; новые элементы интерфейса (XP); работает с реестром и хранит в нем данные и тд

    Дата: 21.04.2004 12:54 | Раздел: Примеры кода | Автор: empro

    CoolButtons - Набор из трех красивеньких кнопочек: зеленая, синяя, красная. Есть Resize (правда не очень большой). Пригодится в работах по оформлению. Пишите на мой E-Mail - буду рад. Довольно красиво. Битмапы вытянуты из ресурсов WinXp.

    Дата: 21.04.2004 12:53 | Раздел: Примеры кода | Автор: Polkovnikov Philip

    Телефонная DB - Программа для просмотра телефов из 2 exeшек.Полный freeware.

    Дата: 21.04.2004 12:50 | Раздел: Примеры кода | Автор: Polkovnikov Philip

    Blank - Известная игра Blank: сопоставь одинаковые картинки.Есть бэг : 3-ой щелчок делает...сами увидите.

    Дата: 21.04.2004 12:47 | Раздел: Примеры кода | Автор: Дмитрий

    Environ - Стандартная функция VB, позволяющая получить кучу информации о компьютере и пользователе, оставшаяся со времён QBasic, и, может быть, потому успешно забытая большинством программёров. Вряд ли она может тягаться по скорости с соответствующими API (хотя сие ещё неизвестно), но посмотреть, думаю, будет интересно.

    Дата: 21.04.2004 12:44 | Раздел: Примеры кода | Автор: Игорь

    File Transfer - Обычный File Transfer с помощью Winsock'а

    Дата: 21.04.2004 12:38 | Раздел: Примеры кода | Автор: Максим

    IComparer - Реализация интерфейса IComparer.



    Последние 20 тем форума на VBNet.Ru:

    15:06 / 25 апр.  Авария!!! | Хитов: 2 |  Ответов: 0
    12:39 / 25 апр.  Как работать с Datacombo ? | Хитов: 1 |  Ответов: 0
    11:51 / 25 апр.  ListBox | Хитов: 9 |  Ответов: 5
    11:50 / 25 апр.  Компиляция приложений .NET | Хитов: 6 |  Ответов: 2
    09:07 / 25 апр.  HELP! Помогите в работе с COM- портом HELP! | Хитов: 4 |  Ответов: 0
    01:46 / 25 апр.  Установка NET и VB6 | Хитов: 14 |  Ответов: 1
    22:36 / 24 апр.  Как выполнить код закрытия? | Хитов: 27 |  Ответов: 2
    22:23 / 24 апр.  Вопрос не в тему :) | Хитов: 25 |  Ответов: 3
    20:57 / 24 апр.  Запись в документ на VBScript | Хитов: 3 |  Ответов: 0
    20:04 / 24 апр.  Blitz Basic | Хитов: 7 |  Ответов: 0
    19:04 / 24 апр.  Как снять выделение с ListView? | Хитов: 10 |  Ответов: 1
    17:20 / 24 апр.  Продажа ПО | Хитов: 29 |  Ответов: 1
    16:38 / 24 апр.  Visual Studio 6 Service Pack 6 | Хитов: 25 |  Ответов: 4
    19:51 / 23 апр.  Знатокам SQL СРОЧНО!!! | Хитов: 15 |  Ответов: 2
    18:23 / 23 апр.  Копирование из лок. сети | Хитов: 24 |  Ответов: 7
    15:19 / 23 апр.  Как узнать имя компьютера зная его IP? | Хитов: 38 |  Ответов: 4
    14:53 / 23 апр.  сообщения в локальной сети | Хитов: 24 |  Ответов: 5
    14:41 / 23 апр.  Picture | Хитов: 21 |  Ответов: 2
    12:19 / 23 апр.  Скрытие программы!!! | Хитов: 43 |  Ответов: 5
    11:46 / 23 апр.  111 | Хитов: 4 |  Ответов: 0


    Последние поступления в Библиотеку кодов:



    наверх


    Новости сайта MSDN



    наверх


    Новости сайта GotdotNet



    Новые статьи:



    наверх


    Новости сайта dotSite

    Новые статьи:



    Новые примеры:



    наверх


    Один момент из жизни форума: Указатели и API

    Адерес темы: http://vbnet.ru/forum/show.asp?id=41091

    Вопрос:
    Автор вопроса: sania-tngf

       Как работать с указателями в vb.net! Мне нужно использовать API-шную функцию

    BOOL ReadFile(
    HANDLE hFile,
    LPVOID lpBuffer,
    DWORD nNumberOfBytesToRead,
    LPDWORD lpNumberOfBytesRead,
    LPOVERLAPPED lpOverlapped);

    Дескриптор получить просто, а вот остальное??? В мсдн-ке есть пример использования класса StringBuilder для этой функции, но мне нужно считывать побайтово (файл очень большой). И еще, lpNumberOfBytesRead это не порядковый номер байта с которого считывать а указатель. Кто мне может помочь и объяснить че к чему.


    Ответы:

    Автор: Павел
       Во-первых, указатели в VB .Net не приемлимы... Они только в unmanaged VC++ .Net есть и, наверное, в unmanaged вставках C#.
    Во-вторых, почему бы для чтения файлов не использовать штатные средства (в данном случае - классы FileStream и BinaryReader из пространства имён System.IO)?

    Автор: sania-tngf
       Использование FileStream дает для 100 метрового файла время ститывания 12 секунд, использование родной функции FileGet дает 7 секунд, Api -шная функция считывает за 2 секунды, но мне неохота переводить из Char в Byte, да и времени это займет очень много. Можно ли как нибудь средствами FrameWorka получить указатель на массив байтов или нет? И для чего тогда существует тип IntPtr?

    Автор: sania-tngf
       Спасибо, я разобрался! Оказываеться методы фреймвека работают не сколько не медленнее апишных, просто нужно считывать информцию не в цикле а сразу большое количесто байт! Но все равно у меня вопрос на будущее - можно ли какими-нибудь средствами получить указатель на массив или переменную? Разве Marshal не дает такой возможности?

    Автор: [darXeth]
       Работа с указателями в .Net очень легко реализуется через класс Marshal. Методами .WriteXXX, .ReadXXX и .Copy (для структур есть функции .PtrToStructure и .StructureToPtr, вторая из которых даёт прямой указатель на структуру).
    Если нужно передать указатель на что-либо в функцию API - ByRef в обьявлении функции автоматически даст такой эффект. Соответственно массив просто передаётся по ссылке и функция API получает указатель на его нулевой элемент (что и требуется).
    При работе с указателями типа IntPtr в .Net могут возникнуть проблемы с Garbage Сollector'ом.

    Автор: sania-tngf
       Но почему тогда у меня работает такое:

    Overloads Declare Function ReadFile Lib "kernel32" Alias "ReadFile" ( _
    ByVal hFile As HandleRef, _
    ByVal lpBuffer() As Byte, _
    ByVal nNumberOfBytesToRead As Integer, _
    ByRef lpNumberOfBytesRead As Integer, _
    ByVal lpOverlapped As Integer) As Integer

    Значение массива передается по значению, тем не менее все работает и функция возращает True, зато если пытаться передать по сслылке,

    ByRef lpBuffer() As Byte

    , то возникает исключение? Кто может объяснить?

    Автор: Андрей Щёкин [darxeth]
       Я немного неясно выразился. При передаче через ByRef действительно передаётся указатель. Но в переменной типа "массив" уже хранится указатель - указатель на нулевой элемент этого массива. Если весь массив ( например, как lpBuffer() ) передавать через ByRef - получится указатель на указатель.
    По этому и работает передача целого массива через ByVal - реально в код C++ по значению передаётся указатель на его нулевой элемент. Можно передать этот указатель и другим способом - передать ByRef нулевой элемент массива ( lpBuffer(0) ).

    Автор: sania-tngf
       An unhandled exception of type 'System.ExecutionEngineException' occurred in project_avo.exe
    Вот такое исключение возникает. Почему?

    Автор: Андрей Щёкин [darxeth]
       Где-то внутри управляемой памяти хранится указатель на нулевой элемент твоего массива. Ты передаёшь указатель на этот указатель. Процедура ждёт указатель на массив, а получает указатель на какое-то место внутри управляемой памяти, которое она радостно перезаписывает, заодно затирая ещё n байт вперёд.
    После этого попытка прочитать этот массив средой CLR (попытка обратиться по перезаписанному указателю) приводит к ошибкам защиты памяти, т.к. он указывает незнамо куда. А ошибка защиты памяти в CLR - смерть всей Execution engine.
    Вот как это выглядит в синтаксисе c++:
    ожидается - void* lpBuffer (реально - byte* lpBuffer)
    ByVal lpBuffer() = byte* lpBuffer
    ByRef lpBuffer() = byte** lpBuffer



    наверх


    Вопрос/Ответ

    Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.

    Вопросы:


    Автор вопроса: Serzh

    Ответ ожидается по этому адресу

       Можно ли VB6 реализовать прозрачность или полупрозрачность Image, например при помощи HScrollBar?


    Автор вопроса: psinetron

    Ответ ожидается по этому адресу

       Как соеденить два компьютера путем телефонного соединения? (с одного компа идет дозвон на другой). И как потом узнать путь соединенного компа.


    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

       Как сделать, чтобы программа не была видна во время работы, работала в фоновом режиме?


    Автор вопроса: Сергей

    Ответ ожидается по этому адресу

       Как отслеживать в фоновом режиме движение мышки?


    Автор вопроса: Роман

    Ответ ожидается по этому адресу

       Проект работает с базами типа DBF (FoxPro 3.0) через Data и
    DataBoundGrid. Создал дистрибутив в Wizard'е, но на другом компе
    он не работает, ссылаясь на ключ в реестре (CLSID). Этот ключ
    содержит информацию о DAO. На компах с установленным офисом прога
    работает. Библиотека DAO 3.6 в дистрибутиве. Что можно сделать?


    Автор вопроса: Semen

    Ответ ожидается по этому адресу

       Подскажите пожалуйста, как программно проверить, открыт или закрыт элемент управления ComboBox, на котором установлен фокус в форме?


    Автор вопроса: i-sof

    Ответ ожидается по этому адресу

       Привет народ. У меня возникла такая проблемка. Когда добавляешь программно текст в текстбокс (text1.text=text1.text & vbcrlf & "123"), ты попадаешь вначало всего текста. Мне нужно, чтобы я попал в конец всего текста. Как это сделать?


    Автор вопроса: Serzh

    Ответ ожидается по этому адресу

       Я тут написал такой код:

    Dim InitialНeight As Integer
    Dim CalculatedHeight As Integer
    Dim NewCalculatedHeight As Integer
    Dim Restoration As Boolean
    Private Sub Form_Load()
         InitialНeight = Screen.Height
         Restoration = False
    End Sub
    Private Sub tmrTimer_Timer()
         NewCalculatedHeight = Screen.Height
         If InitialНeight <> NewCalculatedHeight Then
             CalculatedHeight = Screen.Height
             If InitialНeight <> CalculatedHeight Then
                 Restoration = True
             End If
         Else
             If Restoration = True Then
                 MsgBox "Разрешение экрано восстановлено!", vbExclamation + vbInformation, "Экран"
                 Restoration = False
             End If
         End If
    End Sub

    Так вот, при запуске из Васика все работает, а откомпилированная прога - нет #:-o. Кто-нибудь знает, в чем тут собака порылось, а главное, как баг исправить?




    Ответы:


    Нет ответов.
    Можете заполнить эту форму, либо отослать вопрос СЮДА

    Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
    Текст сообщения:
    Ваше имя
    E-mail для ответа

    наверх


    Выпуск подготовили:

    Сурменок Павел


    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу


    В избранное