forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Некорректная работа Blitz3D на win7. (http://forum.boolean.name/showthread.php?t=12421)

impersonalis 24.05.2010 02:42

Ответ: Некорректная работа Blitz3D на win7.
 
Хотелось бы увидеть от гуру практические рекоммендации "куды писать свои файлы" независимо (в разумных пределах) от версии Виндов.

Alex.D. 24.05.2010 03:42

Ответ: Некорректная работа Blitz3D на win7.
 
Цитата:

Сообщение от SBJoker (Сообщение 147729)
1. Приложение может писать в собственную папку в локали пользователя, получать через винапи функцию, константа что-то вроде AppData, лень искать точное название.

Угу, можно из переменной среды дернуть или через shell32:

Код:

Function EnvironmentVariable$(name$)
        Local result$, length%, buffer%
        result = ""
        length = GetEnvironmentVariable(name, 0, 0)
        If length > 0 Then
                buffer = CreateBank(length)
                If buffer Then
                        length = GetEnvironmentVariableA(name, buffer, length)
                        While length > 0
                                length = length - 1
                                result = Chr(PeekByte(buffer, length)) + result
                        Wend
                        FreeBank(buffer)
                EndIf
        EndIf
        Return result
End Function

Const S_OK% = 0
Const MAX_PATH% = 260
Const CSIDL_APPDATA% = 26

Function FolderPath$(folder%)
        Local result$, buffer%, i%, b%
        result = ""
        buffer = CreateBank(MAX_PATH)
        If buffer Then
                If SHGetFolderPathA(0, folder, 0, 0, buffer) = S_OK Then
                        For i = 0 To MAX_PATH - 1
                                b = PeekByte(buffer, i)
                                If b Then result = result + Chr(b) Else Exit
                        Next
                EndIf
                FreeBank(buffer)
        EndIf
        Return result
End Function

Print EnvironmentVariable("APPDATA")
Print FolderPath(CSIDL_APPDATA)

WaitKey()

End

деклс:

Код:

.lib "kernel32.dll"
GetEnvironmentVariable%(name$, buffer%, length%):"GetEnvironmentVariableA"
GetEnvironmentVariableA%(name$, buffer*, length%)

.lib "shell32.dll"
SHGetFolderPathA%(window%, folder%, token%, flags%, buffer*)

ЗЫ
Лучше конечно библиотечку набросать, все же через банки как-то извращенски :( Ну и в либе можно будет юникодовый вариант дернуть и перевести в анси для блица.

impersonalis 24.05.2010 11:17

Ответ: Некорректная работа Blitz3D на win7.
 
Цитата:

C:\Documents and Settings\ИмяТекующегоЮзера\Application Data
получаю от блитцевского
Код:

Print "APPDATA: "+GetEnv$("APPDATA")
под ХР.
Получу ли описанное
Цитата:

1. Приложение может писать в собственную папку в локали пользователя, получать через винапи функцию, константа что-то вроде AppData, лень искать точное название. Этат папка обычно расположена в C:\Пользователи\Юзер\AppData\Roaming\Папка_с_имене м_вашего_приложения
Под Виндовс-7? И млин, в случае с ХР требуется ещё создать папку приложения а в 7-ке она уже создана? Городить грабли?

Alex.D. 24.05.2010 12:00

Ответ: Некорректная работа Blitz3D на win7.
 
Цитата:

Сообщение от impersonalis (Сообщение 147744)
получаю от блитцевского
Код:

Print "APPDATA: "+GetEnv$("APPDATA")
под ХР.
Получу ли описанное

Под Виндовс-7? И млин, в случае с ХР требуется ещё создать папку приложения а в 7-ке она уже создана? Городить грабли?

Гугл говорит что получишь :)
А насчет папки, все там ровно же, получаешь путь и создаешь папку с именем приложения. Можно вообще это дело доверить инсталятору.

ЗЫ
Вот ведь я извращенец, совсем забыл что есть функция GetEnv(), нагородил говнокода :)

SBJoker 24.05.2010 16:54

Ответ: Некорректная работа Blitz3D на win7.
 
Цитата:

Сообщение от impersonalis (Сообщение 147744)
получаю от блитцевского
Код:

Print "APPDATA: "+GetEnv$("APPDATA")
под ХР.
Получу ли описанное

Под Виндовс-7? И млин, в случае с ХР требуется ещё создать папку приложения а в 7-ке она уже создана? Городить грабли?

Поведение функции одинаково во всех виндах, только папки разные. Свою папку надо создавать самим.

baton4ik 24.05.2010 20:55

Ответ: Некорректная работа Blitz3D на win7.
 
Цитата:

Сообщение от SBJoker (Сообщение 147385)
У меня семерка, были бсоды из-за переразгона процессора

А какой номер бсода? Случайно не 131?

SBJoker 24.05.2010 21:03

Ответ: Некорректная работа Blitz3D на win7.
 
номер бсода никакой, ибо говорю же, ЦП переразогнал, и он когда ошибается кидает панику (БСОД) и вырубается. Описания нет, просто "аварийное завершение работы чтобы обеспечить безопасность данных компьютера и бла-бла-бла-бла...".
Проще говоря нефиг так проц гнать.

ant2on 17.07.2010 15:38

Ответ: Некорректная работа Blitz3D на win7.
 
SBJoker спасибо за советы! Уважуха +1 :)

А Blitz3D уже устарел мягко говоря. Конечно играться с ним еще можно и даже какие-то минимальные проекты делать. Но че-то серьезное лучше на современных движках. имхо


Часовой пояс GMT +4, время: 04:43.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot