Author Topic: theForger's Tutorials revised  (Read 1833 times)

0 Members and 1 Guest are viewing this topic.

Aurel

  • Sr. Member
  • ****
  • Posts: 256
Re: theForger's Tutorials revised
« Reply #60 on: March 29, 2018, 10:25:23 AM »
Arnold
when i compile this with oxygenBasicProgress
i get only this error:

looks like is only wndProc exposed 

Arnold

  • Hero Member
  • *****
  • Posts: 648
Re: theForger's Tutorials revised
« Reply #61 on: March 29, 2018, 12:24:54 PM »
Hi Aurel,

I used OxygenBasicProgress of March 29. I loaded the file SimpleMDI.o2bas with Oxide, used F5 for compiling and this creates the exe without error message. If I apply: uses RTL64  instead of: uses RTL32 then it will create the SimpleMDI.exe for 64-bit Windows.

If you use the files of the previous Oxygenbasic installation, then you must use winutil.inc of reply #34. But I have not tested this.

Roland
« Last Edit: March 30, 2018, 01:11:23 AM by Arnold »

Mike Lobanovsky

  • Admin Support Member
  • *****
  • Posts: 1854
Re: theForger's Tutorials revised
« Reply #62 on: March 29, 2018, 01:13:07 PM »
Hi Roland,

I used OxygenBasicProgress of March 29.

Yes, Charles seems to compliment his OxygenProgress with the matching OxygenBasicProgress distros that may contain other WIP files he may wish to update accordingly. I always try to load the both zips and use them together. It practically never fails for me.

Quote
Do you see a problematic place in the code, where memory leaks could arise? I am insecure what could be missing.

No, I see no flaws in your code. There seem to be no apparent pitfalls that the memory leak may be attributed to.

Upon some brooding over this phenomenon, I can only say I used to see a similar process memory behavior only in the C++ apps that make use of C++ std::vector facilities. C++ uses its own memory allocation and garbage collection engine, and you can't reallocate or partially free the memory used by its overgrown std::vectors once you don't need the respective vector elements any longer. The C++ memory allocator preserves the memory (though not the objects stored in that memory) just in case you might need it later. You can only delete the entire std::vector using a known hack or let it go out of scope and thus get garbage collected.

Which makes me think that the entire MDI engine itself may well be implemented using C++ to take advantage of its template library whereby the MDI child window data would be stored internally to the engine in a set of std::vectors.
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, 2 x nVidia GTX 650Ti w/ 2GB VRAM, Windows 7 Ultimate Sp1)

jcfuller

  • Full Member
  • ***
  • Posts: 143
Re: theForger's Tutorials revised
« Reply #63 on: March 29, 2018, 02:04:45 PM »
I always rename my current OxgenBasic Folder adding the date -> OxygenBasic_03232018 then unzip the new one.
I then use Winmerge and load both folders for a comparison. I can copy from old to new or compare files from one folder to the other.

James

Arnold

  • Hero Member
  • *****
  • Posts: 648
Re: theForger's Tutorials revised
« Reply #64 on: March 30, 2018, 01:12:16 AM »
Thank you Mike, for your info. This phenomen was new to me and unexpected. I tested some other editors (also Scite which only applies tabs) and the behaviour seems to be similar. But after terminating the app, the memory seems to be released. (I think)

I like the new feature of InMessageLoop in winutil.inc very much. If applied carefully, there is so much possible now with using the MainWindow function.

Roland