Страница: 1 |
Вопрос: VB-Строка в PB | Добавлено: 17.03.04 23:00 |
Автор вопроса: ![]() |
Люди, объясните почему такой код сработал правильно. Ведь VB и PB по разному хранят строки в памяти. === VB --- Private Declare Function RetW Lib "RetW.dll" (ByRef StrW As String) As Long Private Sub Form_Load() Dim StringW As String StringW = "Hello" Call RetW(StringW) MsgBox StringW End Sub === --- === PB --- #Compile Dll "RetW.dll" %DLL_PROCESS_ATTACH = 1 Function LibMain ( _ ByVal hInstance As Long, _ ByVal Reason As Long, _ ByVal Reserved As Long) Export As Long Select Case Reason Case %DLL_PROCESS_ATTACH LibMain = 1 Exit Function End Select LibMain = 0 'failure! End Function Function RetW Alias "RetW" (ByRef StrW As String) Export As Long StrW=StrW & " World !" End Function |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 84 Ответов: 453 |
Профиль | Цитата | #1 | Добавлено: 18.03.04 18:23 |
VB хранит строки в UNICODE, а PB в ANSI, может из-за этого... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 204447456 Вопросов: 28 Ответов: 664 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 18.03.04 23:27 |
Должно же быть какое то объяснение этому феномену. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #3 | Добавлено: 20.03.04 10:26 |
Целый месяц ковырял PB, пришед к выводу, что он ведет себя несколько непредсказуемо. То, что не должно работать - работает, а что должно - нет. Самое непонятное - некоторые конструкции сегодня работают, а завтра могут отказать безо всяких на то причин. Вот пример: была ф-ция создания и при выходе из программ - уничтожения шрифтов и кистей (все переменные - GLOBAL) IF Flag THEN ' создаем Эта ф-ция работала несколько дней и затем отказала безо всяких на то причин IF Flag THEN ' создаем ELSE 'уничтожаем созданные объекты И в таком виде работает. IMHO, PB - вещь чрезвычайно глючная и непредсказуемая. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 204447456 Вопросов: 28 Ответов: 664 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 28.03.04 08:17 |
Не подтвердить ни опровергнуть твоё утверждение не могу, т.к. не пользуюсь PBForms напрямую - только копирую код оттуда. Хотя вполне вероятно что в твоём коде закралась ошибка. Когда у меня "глючит" PB, то я первым делом грешу на себя. В большинстве случаев "глюк" оказывается в моём коде. Бывают и непонятные миражи, но они исчезают также, как и возникают. Скорее всего это связанно не с компилятором а с системой. Например поиграл в крутую игруху или запустил пару раз Vb.Net. Из больших перегрузок бывает система не всегда выходит с блеском, а слегка потрепаной. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #5 | Добавлено: 28.03.04 14:44 |
Вещи которые изначально не получаются - вполне допускаю, что это мои ошибки. В этом случае стараюсь повторить то же в VB, чтобы все понять и разобраться. Но вот то, что программа работает когда захочет - это несерьёзно. Случай с автозагрузкой (см. выше) : через несколько дней нормальной работы вновь перестала запускаться программа при загрузке компа![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 204447456 Вопросов: 28 Ответов: 664 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 28.03.04 16:31 |
От делать мне больше нечего... Ну ладно, давай свой код - гляну. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 117 Ответов: 1538 |
Профиль | Цитата | #7 | Добавлено: 28.03.04 17:55 |
Если ты про автозагрузку, то кидаю тебе на |
Страница: 1 |
|