Page 2 of 3
Posted: Tue Apr 13, 2004 8:14 am
by Alberto
What a nice surprise!
Thank you to Fred and all of the PureBasic team.
No viruses found using "a squared" antivirus.
The continuous improvement in PureBasic always surprise me and the smartupdate (a great tool) is unuseful for me because I look every two/three days at
www.purebasic/news to see if Fred has cooked something for me.
It's delicious to often look at this page. It's like a search for a particular girl thtat you hope to reencounter. When the news page tell me that a new release is downloadable is like I've found that girl.
Ciao
Alberto
Posted: Tue Apr 13, 2004 8:32 am
by spongehammer
hehehehe
nicely put Alberto
chris
Re: Huge Easter Egg: PureBasic 3.90 just eclosed !
Posted: Wed Apr 14, 2004 3:52 am
by NoahPhense
Fred wrote:Hi folks !
Here we go, the final v3.90 is finally out and I must said it was a big work to finish all this while the sun shined in Paris

. Thankfully, Berikco, Fr34k and Andre helped a lot to make it possible, so kudos to all of them !
Grab it while it's hot:
http://www.purebasic.com
Have fun,
Fred.
PS: time to sleep

Thanks guys.. very sweet.. ok time to break it.. (jk)
Just incase anyone didn't know, Berikco's VD is already outdated.
Be sure to get it from his site..
http://www.purebasic.be/download.htm
- np
ps - any ETA on a full download? Or can we install the demo, and replace
the datakey file.. ?
Posted: Wed Apr 14, 2004 12:24 pm
by dige
After installing v3.90 and updating libs from purebasic.com/update ...
I'm still not able to compile my source. I have got this errors:
Code: Select all
gadgetextension: multiple definition of _PB_AddGadgetColumn_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ButtonImageGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ButtonImageGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ChangeListIconGadgetDisplay_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_CloseTreeGadgetNode_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ContainerGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ContainerGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_EditorGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_EditorGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_GadgetToolTip_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_HyperLinkGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_HyperLinkGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ImageGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ImageGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_IPAddressGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ListIconGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ListIconGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_OpenTreeGadgetNode_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_PanelGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ProgressBarGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ProgressBarGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollAreaGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollAreaGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollBarGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_ScrollBarGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_SpinGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_SplitterGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_SplitterGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TrackBarGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TrackBarGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TreeGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_TreeGadget_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_WebGadget2_DEBUG
first definition is in file linkedlistexten
gadgetextension: multiple definition of _PB_WebGadget_DEBUG
first definition is in file linkedlistexten
Functions\Image .text: undefined reference to '_OleUninitialize@0'
Functions\Image .text: undefined reference to '_OleInitialize@4'
Functions\Image .text: undefined reference to '_CreateStreamOnHGlobal@12'
movie.obj .text: undefined reference to '_CoUninitialize@0'
Any suggestions?
cya dige
Posted: Wed Apr 14, 2004 1:18 pm
by El_Choni
This part is from the OLE lib (we talked about this, I still don't know what can be happening):
Code: Select all
Functions\Image .text: undefined reference to '_OleUninitialize@0'
Functions\Image .text: undefined reference to '_OleInitialize@4'
Functions\Image .text: undefined reference to '_CreateStreamOnHGlobal@12'
movie.obj .text: undefined reference to '_CoUninitialize@0'
Posted: Wed Apr 14, 2004 1:33 pm
by Fred
I don't know which the 'linkedlistextension' is linked to your exe. You may be use the SortList() command ? But this multiple definition is wierd, I will take a look tonight.
Posted: Wed Apr 14, 2004 2:10 pm
by dige
The problem seems to be the movie-lib ...
I have about 5.000 lines of code and when I comment out all the movie
commands ... there are no more compiler errors. also no gadget errors ...
Posted: Wed Apr 14, 2004 3:07 pm
by dige
Args :-( I have located the problem. It is the Setup - UserLib!
Sorry Fred for the inconvenience. I will tell shortly the problem to the author
of this lib.
regards,
dige
Posted: Thu Apr 15, 2004 1:32 am
by Karbon
What userlib? I'm having the same thing happen
Except I get :
multiple definition of _PB_PeekB_DEBUG
multiple definition of _PB_PeekW_DEBUG
multiple definition of _PB_PeekL_DEBUG
multiple definition of _PB_PeekS_DEBUG
multiple definition of _PB_PeekS2_DEBUG
Posted: Thu Apr 15, 2004 1:35 am
by freak
Karbon:
that was a problem with the 'Misc' lib. get a new one here:
http://www.purebasic.com/update/
Timo
..
Posted: Thu Apr 15, 2004 12:53 pm
by NoahPhense
What functions are in this particular Lib ?
- np
Posted: Fri Apr 16, 2004 12:55 pm
by DEU.exe
Hi Fred & Team,
Thanks a lot for v3.90.
Very COOL!
The SmartUpdater is also a TOP tool.
@Fred: May you have a look here:
viewtopic.php?t=9194. Your tip has still some problems with ReplaceString() and RemoveString(). Are there any possibilities to fix this?
Code: Select all
Procedure SetStringManipulationBufferSize(Bytes)
PBStringBase.l = 0
PBMemoryBase.l = 0
!MOV eax, dword [PB_StringBase]
!MOV [esp+4],eax
!MOV eax, dword [PB_MemoryBase]
!MOV [esp+8],eax
HeapReAlloc_(PBMemoryBase, #GMEM_ZEROINIT, PBStringBase, Bytes)
!MOV dword [_PB_StringBase],eax
EndProcedure
; Set the buffer size for all strings to 1 MB.
SetStringManipulationBufferSize(1048576)
A$ = Space(1000000)+"abc d "
; CRASH - ReplaceString()
A$ = ReplaceString(A$,"abc","def")
Debug A$
Greetings,
F.
Re: Huge Easter Egg: PureBasic 3.90 just eclosed !
Posted: Sat Apr 17, 2004 11:29 am
by TronDoc
Fred wrote:PS: time to sleep

rest well, good knight. --jb
Removing features/functions too quickly?
Posted: Fri Apr 23, 2004 12:47 am
by SmokeAndMirrors
We've just started using PureBasic for some commercial applications. It's a great product and it fits our needs nicely so far.
In reading through the history of changes for the lastest 3.90 version, I noticed that some working functions were removed, presumably because some new enhancements made them redundant or unnecessary.
From my perspective, it seems a bit radical to have to re-code an application just to get some of the other enhancements or bug fixes. It seems like there should be more time to update code before having to ditch it.
In other development tools I've used, features were eliminated over a period of time so that new replacement features could go through a shake-out period and give the developers a chance to learn how to do things the new way.
Now with all that said, I have little idea of what's involved in writing a language/compiler so I really don't know how easy it is to let old or outdated functions die slowly.
It's just concerning because I could see this becoming a major headache if something critical and tightly integrated into our application gets removed forcing a choice between re-writing or not using the latest and hopefully greatest libraries and compiler.
What I'm asking for seems to make sense but maybe I'm just being unreasonable or ignorant. I'm hoping for some guidance or feedback from the primary PureBasic developers on this.
-SM
About long strings
Posted: Fri Apr 23, 2004 2:05 am
by fweil
Just some words about long strings ...
This confirms that some of us know much more than just use PB 'as it is' but have issues with regular PB commands :
I introduce here some code that shows it is possible to declare higher than 64K strings, but if you try to add any string management instruction upon it crashes.
BTW this shows a way 'how to do it'
Code: Select all
#Window_Main = 17
#Gadget_Button = 23
#Gadget_Editor = 24
#Event_Escape = 99
BasicString.s = " : Voyez le brick géant que j'examine près du wharf" + Chr(13) + Chr(10)
Len_BasicString = Len(BasicString) + 6
;
; InitString()
;
String_Size_Limit = $400000
! PUSH dword [v_String_Size_Limit] ; 64MB String init
! PUSH dword 8
! PUSH dword [PB_MemoryBase]
! CALL _HeapAlloc@12
! MOV [PB_StringBase],eax
LongString.s ; This declared string variable has a max length set to String_Size_Limit
*LongBuffer = AllocateMemory(String_Size_Limit)
i = 1
Repeat
PokeS(*LongBuffer + (i - 1) * Len_BasicString, RSet(Str(i), 7, " ") + BasicString)
If i % 1000 = 0
Debug Str(i) + " " + Str((i - 1) * Len_BasicString) + " " + RSet(Hex((i - 1) * Len_BasicString), 8, "0")
EndIf
i + 1
Until i * Len_BasicString > String_Size_Limit
LongString = PeekS(*LongBuffer)
FreeMemory(*LongBuffer)
Debug Str(i) + " " + Str(Len(LongString)) + " " + RSet(Hex(Len(LongString)), 8, "0")
;
; InitString()
;
String_Size_Limit = 64000
! PUSH dword [v_String_Size_Limit] ; PB Standard String init
! PUSH dword 8
! PUSH dword [PB_MemoryBase]
! CALL _HeapAlloc@12
! MOV [PB_StringBase],eax
ShortString.s
i = 1
Repeat
ShortString = ShortString + RSet(Str(i), 6, " ") + BasicString
If i % 1000 = 0
Debug Str(i) + " " + Str(Len(ShortString)) + " " + RSet(Hex(Len(ShortString)), 8, "0")
EndIf
i + 1
Until Len(ShortString) > 64000 - Len(BasicString) - 6 - 2
Debug Str(i) + " " + Str(Len(ShortString)) + " " + RSet(Hex(Len(ShortString)), 8, "0")
WindowXSize.l = 640
WindowYSize.l = 480
WindowTitle.s = "Long string test"
If OpenWindow(#Window_Main, 0, 0, WindowXSize, WindowYSize, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, WindowTitle)
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Escape, #Event_Escape)
If CreateGadgetList(WindowID())
hEditorGadget = EditorGadget(#Gadget_Editor, 0, 0, WindowXSize, WindowYSize, #PB_Container_Raised)
EndIf
SetGadgetText(#Gadget_Editor, LongString)
lLongString = Len(LongString)
AddGadgetItem(#Gadget_Editor, -1, "Long string length is : " + Str(lLongString) + " (" + Hex(lLongString) + ")")
SetGadgetState(#Gadget_Editor, 100)
Quit = #FALSE
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = #TRUE
Case #PB_EventMenu
Select EventMenuID()
Case #Event_Escape
Quit = #TRUE
EndSelect
Case #PB_EventGadget
Select EventGadgetID()
Case #Gadget_Editor
Result = SendMessage_(hEditorGadget, #EM_GETSEL, 0, 0)
w1 = (Result & $FFFF0000) >> 16
w2 = Result & $0000FFFF
Debug Str(w2) + " " + Str(w1) + " " + Str(w1 - w2)
Case #Gadget_Button
EndSelect
EndSelect
Until Quit
CloseWindow(0)
EndIf
End
Enjoy and play with ...