Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

 

  Вопрос: C++ vs Basic Добавлено: 21.03.05 18:24  

Автор вопроса:  Дмитрий Щапов

Ответить

  Ответы Всего ответов: 127  

Номер ответа: 106
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #106 Добавлено: 29.03.05 22:04
ЛЮДИ!!!! Не бросайте в трудный момент.
Как файлы переслать по сеткеееее! На VB,C++, или .bat файле - один фиг.

Ответить

Номер ответа: 107
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #107
Добавлено: 29.03.05 22:06
2cresta: хм..я думаю, ты ошибаешься.

(char*)&buff

Почему (char*)? Это указание функции, что её будет передан указатель типа char

Почему &buff?
Вместо указателя передаем адрес, под которым есть наш байтовый массив.

Не знаю, почему так пашет MessageBox, как показал Sharp, но все другие функции, что я знаю (например, сетевые), так не пашут...

Ответить

Номер ответа: 108
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #108
Добавлено: 29.03.05 22:08
стандартной функццией копирования, но путь указывть сетевой (тум типа //klient/C:/ или что-то такое)

Ответить

Номер ответа: 109
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #109 Добавлено: 29.03.05 22:14
Ну и (на досуге) вопрос который большей ногой уходит в С++.
Вот я выделяю области с CreateRoundRectRgn,CreateEllipticRgn, потом CombineRgn иполучаю некий ID чего-то там, где-то там в оперативке. Как мене получить это самое "что-то". (или CombineRgn возвращает адрес данных, тогда какой они длины?)

Ответить

Номер ответа: 110
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #110 Добавлено: 29.03.05 23:14
Вообще-то первые две ф-ции возвращают хэндл созданного региона, а третья - тип региона, который был создан из двух. Никакого "чего-то там, где-то там в оперативке" нет. Есть тип получившегося региона:

NULLREGION The region is empty
SIMPLEREGION The region is a single rectangle.
COMPLEXREGION The region is more than a single rectangle.
ERROR No region is created.
Вот что ты имеешь
И плюс хэндл результирующего региона, он передаётся первым параметром CombineRgn.
Т.е. ты сначала создаёшь регионы (три штуки).
Первый у тебя соединит в себе два остальных. Т.е. он типа пустого шаблона, в который поместится результат комбинирования функцией CombineRgn.

Ответить

Номер ответа: 111
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #111 Добавлено: 30.03.05 00:49
Ландо. Мне бы достать его значение, сохранить в файле, а потом, когда-нибудь загрузить. "Чтобы не было мучительно больно от бесцельно потраченного процессорного времени." Такое возможно?
Этот хэндл ведь на что-то указывает.(или означает)

Ответить

Номер ответа: 112
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #112 Добавлено: 30.03.05 01:23
Кого сохранить в файл? Хэндл??? Зачем? Он имеет силу только пока программа работает!!! Это всего лишь число, не более того. А пока работает программа, твоя переменная, в которой записано это число, содержит этот хэндл. Зачем его в файл, за что?

Если был некий человек(объект), и при жизни его паспорт(хэндл) спрятали в сундук(файл), а после смерти вынули его паспорт - что, человек оживет? :)))

Ответить

Номер ответа: 113
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #113
Добавлено: 30.03.05 02:03
у тебя теоретически правильно? Что-то не верю...

MessageBox должна принимать УКЗАТЕЛЬ (ну, или адрес) на массив. А ты что передал? Указатель? Нет. Адрес? Нет...

Почему работает я даже и не знаю...
Может ты скажешь почему?

Гыгыгы. Я мог бы в третий раз послать в детсад, но раз ты такой упорный, приведу тебе цитату из K&R, самые азы
Керниган, Ричи. Язык Си
http://www.softera.ru/literature.shtml?topic=cplus&book=6&page=5.txt
Очевидно существует очень тесное соответствие между ин-
дексацией и арифметикой указателей. в действительности ком-
пилятор преобразует ссылку на массив в указатель на начало
массива. В результате этого имя массива является указатель-
ным выражением. Отсюда вытекает несколько весьма полезных
следствий. Так как имя массива является синонимом местополо-
жения его нулевого элемента, то присваивание PA=&A[0] можно
записать как

              PA = A

    Еще более удивительным, по крайней мере на первый взг-
ляд, кажется тот факт, что ссылку на A можно записать в
виде *(A+I). При анализировании выражения A в языке "C"
оно немедленно преобразуется к виду *(A+I); эти две формы
совершенно эквивалентны. Если применить операцию & к обеим
частям такого соотношения эквивалентности, то мы получим,
что &A и A+I тоже идентичны: A+I - адрес I-го элемента от
начала A. С другой стороны, если PA является указателем, то
в выражениях его можно использовать с индексом: PA иден-
тично *(PA+I). Короче, любое выражение, включающее массивы и
индексы, может быть записано через указатели и смещения и
наоборот, причем даже в одном и том же утверждении.

Более того, твое выражение (char *)&buff содерижит как минимум 2 несерьезные ошибки: если ты используешь & в применении к массиву во избежание проблем при чтении должен указывать индекс начала массива, т.е. 0, а во-вторых, поскольку массив имеет тип char явный каст совершенно лишний, т.е. должно быть &buff[0]

Ответить

Номер ответа: 114
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #114 Добавлено: 30.03.05 07:03
Ландо. Мне бы достать его значение, сохранить в файле, а потом, когда-нибудь загрузить. "Чтобы не было мучительно больно от бесцельно потраченного процессорного времени." Такое возможно?


Такое возможно.
http://www.codenet.ru/progr/delphi/stat/regions/#a90

Ответить

Номер ответа: 115
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #115
Добавлено: 30.03.05 15:17
2Sharp: хм..нужно будет Керниган, Ричи. Язык Си прочесть....Действительно не знал такого...
А разве можно передавать в АПИ ф-ции для OUT параметров &buff[0]?

Ответить

Номер ответа: 116
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #116
Добавлено: 30.03.05 18:18
А разве можно передавать в АПИ ф-ции для OUT параметров &buff[0]?
Ае! DaSharm признался, что он неправ! Если ты передаешь адрес начала строки в функцию, что ей помешает (ну кроме невыделенного участка памяти в нужной ей) сделать туда OUT?

Ответить

Номер ответа: 117
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #117 Добавлено: 30.03.05 18:39
В большую часть API, имеющих одним из параметров "строки", передается именно указатель на начало строки. А &buff[0]-это и есть указатель на начало.

Ответить

Номер ответа: 118
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #118
Добавлено: 30.03.05 23:05
и &buff это &buff[0]...вот блин...надо такое :)

Ответить

Номер ответа: 119
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #119 Добавлено: 31.03.05 18:54
Кто-нить переводил когда-нить с Delphi на Microsoftский язык? или мне инсталлить Delphi(опять распихает по всему компу свои папки) создавать длл, или это можно перевести?
procedure SaveRegion (FileName: string);
var
  s: TStream;
  size: cardinal;
  data: pointer;
begin
  s := TFileStream.Create (FileName, fmCreate);
  try
    size := GetRegionData (fRgn, SizeOf (RGNDATA), nil);
    data := GlobalAllocPtr(GPTR, size);
    try
      GetRegionData(fRgn, size, data);
      s.Write(data^, size);
    finally
      GlobalFreePtr(data);
    end;
  finally
    s.Free;
  end;
end;

Ответить

Номер ответа: 120
Автор ответа:
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
 Профиль | | #120 Добавлено: 31.03.05 18:59
Впрочем если даже на вб переводить проблема только в SizeOf(может быть подойдет и LenB) и data: pointer(==> Write(data^, size))

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам