Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DLL Talk / The Matrix1Utils plugins collection

Author
Message
Creating Game
15
Years of Service
User Offline
Joined: 21st Oct 2008
Location:
Posted: 27th Apr 2010 13:25
txs for the excellent plugin
JohnBarbarossa
14
Years of Service
User Offline
Joined: 9th Jul 2009
Location:
Posted: 27th Apr 2010 15:44
Ian,

I have a question about the commands in plugin 33. I understand (but may interpret incorrectly) that these commands allow you to bypass (the slow) get image command altogether.

Normally I would paste an image to a bitmap, change it, and then grab it again with get image.

Now I try to rewrite this with your commands and when I put the following code in:


I get an "image is not a render target" error in the last line. Is it possible what I am trying to achieve, or are these commands for camera use only (which I don't use since I am making a 2d game)?

Thanks in advance.

John
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 27th Apr 2010 16:25
@Spritzen,
I'll check it out to see what's causing it.

@Jeff,
The primary purpose for that function was for the quick unquoting of strings from CSV strings, or for those strings that had quotes added with the QUOTE$ function, not for general-purpose quote removal. I guess it'd also need to deal with straight, left and right single quotes too if it was made general in that way, and only remove 'matching' quotes too.

I'll take a look and maybe update it if I can come up with a good set of rules.

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 27th Apr 2010 20:28
@JohnBarbarossa,
Sorry, I missed your post because I didn't notice the unread posts went onto another page.

Anyway, I can't reproduce your problem with the code presented. Can you put together a short piece of code that does? There should be no reason why the code shouldn't work in 2D either.

@Creating Game,
You're welcome

JohnBarbarossa
14
Years of Service
User Offline
Joined: 9th Jul 2009
Location:
Posted: 27th Apr 2010 21:57 Edited at: 27th Apr 2010 21:59
Ian,

No problem.

This is my custom function in which it occurs (the first one I tried to rewrite with your commands - old DPro lines are commented out)

I am not sure if this will help you reproduce. Maybe it is something in the image itself?

John

Neco
15
Years of Service
User Offline
Joined: 13th Jul 2008
Location: Waterloo, Wisconsin USA
Posted: 7th May 2010 23:00
I'm having a problem, apparently.

I first tried just installing everything, for the sake of speed and convenience.. Then I found that the editor would no longer compile and run stuff. At first I thought it wasn't compiling at all, even. But it seems that it will at least do that.

It just won't run the program afterwards.. These are tests involving none of your utilities either that would compile / run fine before installing.

So I yanked everything and just tried Matrix1Util_16 (since its the one I was planning on using the most) and even having just that one DLL and its related keyword file installed, will cause this behavior to happen.

I don't know if its specific to certain DLL's or just gonna happen with any single DLL or group of DLL's in the set. But I thought I would bring this up, in case no one has mentioned this problem before.

Not sure what it could be. But removing all traces of Matrix1Utils definitely resolves the issues and programs will "Compile & Run" as normal.

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 7th May 2010 23:12
Ok, I guess that you have a fairly new installation of Windows, and haven't yet installed anything that requires the C++ runtime files.

Go to the very first page of this thread. Right at the bottom of the first post you'll find a link to the VC++ redistributables. Unpack the contents to your Windows\System32 folder - if you are prompted to overwrite any existing file, click on NO.

That should solve the problem for you. If not, then if you can upload any error messages you get I'll look into it further.

Neco
15
Years of Service
User Offline
Joined: 13th Jul 2008
Location: Waterloo, Wisconsin USA
Posted: 7th May 2010 23:26 Edited at: 7th May 2010 23:27
Hi,

My install is months and months old, I assure you that much, and I have both files already. One of the files in your zip (MSVCR71.DLL) is actually older than the file I have, and the other is the same age.


I don't get any kind of error message. The output window doesn't even generate output, and the progress bar flashes only for a second or so.. I tried it on a fresh project directory with no compile, so I do know it is actually compiling, but whatever is making it not run afterward, is also causing the silence in the main editor also.

Shard Lights
16
Years of Service
User Offline
Joined: 30th Oct 2007
Location: Out on the wires
Posted: 14th May 2010 16:23
Ian, just a note to thanks for this collection of utilities. They are brilliant and a great time saver.
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 6th Jun 2010 19:35 Edited at: 6th Jun 2010 19:36
I'm not sure if this should be counted as a bug with DBPro, a bug with your plugin, both or neither, but I would expect this code to print "a":



It appears that "sgn" returns a float if the value is a float, which may/may not be what is expected? But the "select" statement appears to do a direct comparison of the bytes of the operand, and so only 0.0 is recognised as 0, whereas -1 is not equivalent to -1.0 and 1 is not equivalent to 1.0.

It's an easy enough work-around (changing "case 1" to "case 1.0" and "case -1" to "case -1.0") but was certainly confusing!

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 6th Jun 2010 21:37
It looks like DBPro bug to me - because you are providing a float value to the select statement, it's expecting matching float values in the case statements too.

If you provide hard-coded values and mismatch the types, then the select statement still fails:


Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 6th Jun 2010 21:48
Yes, I agree, but there is also the other issue of whether 'sgn' should return a float. Seeing as it only ever returns -1, 0 or 1, it could just as well return an integer. (Especially seeing as using 'select' on the result of it is likely to be a common operation, and DBPro will automatically convert it to a float if necessary anyway...)

Sasuke
18
Years of Service
User Offline
Joined: 2nd Dec 2005
Location: Milton Keynes UK
Posted: 17th Jun 2010 15:53 Edited at: 17th Jun 2010 15:57
Using any of the Matrix1Util_33 commands causes an error on ended the program. Even if you just run this one line:



You get a program not responding error on leave.

A dream is a fantasy, if you achieve that fantasy it was never a dream to begin with.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 17th Jun 2010 21:15 Edited at: 18th Jun 2010 00:04
There appears to be some sort of hidden dependency that I wasn't aware of - if you use a full piece of code, everything works fine:


I'll see if I can track it down.

[EDIT]
Got it!
It was an 'order of destruction' problem with my DLL and DBPro's DLL's - I was attempting to manipulate a DBPro DLL that the runtime had already unloaded. A quick shift of the code from the Destructor to the PreDestructor solved the problem.

Spritzen
14
Years of Service
User Offline
Joined: 12th Aug 2009
Location:
Posted: 3rd Jul 2010 14:37
Hi IanM
I've got STYX and Matrix1Util_16 conflicts with it, both using TRIM$ is there a way I can just not load the conflicting commands for either yours or STYX. I want to keep both ideally as I use your split csv commands and I use various in STYX. Any ideal on a work around for me?

Thanks..
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 3rd Jul 2010 15:09
Download a free resource editor such as reshacker and edit the string table for the 'trim' command in one of the plugins .

When you open the dll in the resource editor, there should be a section for string tables. Clicking the string table of the plugin will bring up lines of text. In each line, the part before the first '%' sign indicates the command name, so just change it to something else and then save. Remember to backup the DLL before changing it

[b]
Spritzen
14
Years of Service
User Offline
Joined: 12th Aug 2009
Location:
Posted: 3rd Jul 2010 16:00
Thanks!

That's worked a treat
GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 11th Jul 2010 06:33
IanM, Have another suggestion for you. This one should be really easy. Can you make a function in one of your DLLs that returns the current unix time? Also, if you are feeling adventurous, another command to convert unix time to MM/DD/YY hh:mm:ss somehow would be neat too.

Ernst Rolf
16
Years of Service
User Offline
Joined: 11th Jun 2007
Location: Sweden
Posted: 11th Jul 2010 22:48
Got a quick question for you regarding the alloc function.
It has been working fine for ages, but now all of a sudden my application crashes (without any error messages; neither do I get any access violation indications) when calling alloc(3480) at a certain position in my code. Before that a lot of memory has been allocated, but it's nowhere near having my ram filled up or anything such. Also, a previous call to realloc fails (returns a null pointer) (the very last thing attempted before issuing the crashing alloc call).
I cannot seem to replicate the problem, so I just wondered under which circumstances will that particular function crash rather than return 0 / display a message? All I can think of that would interfere would be too little available RAM (in which case it should return 0 though, I believe) or supplying an invalid size like 0.

Thanks for any replies and for a great plugin pack.

O ja
Dark Dragon
16
Years of Service
User Offline
Joined: 22nd Jun 2007
Location: In the ring, Kickin\' *donkeybutt*.
Posted: 14th Jul 2010 19:56
This..............Is..............Great!!!! I LOVE IT. Nice work Ian. Really.

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 14th Jul 2010 23:36
... and that's part of what makes it worthwhile for me. Thanks.

@GIDustin,
I'll add it to my list, but I'm not sure about just providing a simple gregorian calendar. I'll look and see if I can provide a way of adding user-defined calendars too.

@Ernst Rolf,
The REALLOC function will return a zero pointer when it can't allocate any memory, but it leaves the original memory in place:


However, I suspect that's not your problem. What I'd guess the problem is if you are sure that you haven't run out of memory is that you are writing past the memory that you have allocated and that you are corrupting the memory heap - there's a lot of housekeeping involved in memory allocation, and I'm guessing that you've overwritten some of that data.

I'll add a little more checking to the commands, but that'll only get you a nicer error message at best.

I'd suggest that rather than allocating raw memory, that you instead use memory banks - they have bounds checking built in that is impossible to do (or at least as expensive as banks) for raw memory.

Ernst Rolf
16
Years of Service
User Offline
Joined: 11th Jun 2007
Location: Sweden
Posted: 15th Jul 2010 12:57
Quote: "What I'd guess the problem is if you are sure that you haven't run out of memory is that you are writing past the memory that you have allocated and that you are corrupting the memory heap"

Thank you very much; seems that was indeed what was happening
Think I got it sorted out now.

Quote: "I'd suggest that rather than allocating raw memory, that you instead use memory banks - they have bounds checking built in that is impossible to do (or at least as expensive as banks) for raw memory."

Maybe... I find that raw memory is very nice to work with in that you can store your own memory object structures "within" another one (ie. you have a function that takes a pointer to a "list object"; this list is stored somewhere within a "container object" and you can then do something like function(pContainer + CONTAINER__LIST_OFFSET). With banks I suppose that would be harder... granted you could provide a offset within the bank, but then it would be messier if you have that list alone somewhere (or sure, specify offset 0, but still)).
I also find it nice that you can store memblock structures and just copy these to memblocks whenever you need to build some media from them, etc.


Well, again, thanks
*Goes back to coding*

O ja
Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 19th Jul 2010 02:14 Edited at: 19th Jul 2010 02:17
Edit Oops - didn't realise I was looking at an old post.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 19th Jul 2010 22:34
Nevertheless, I've already seen you message via mailback so don't think you'll get away with that

I'll think about how I can fix that problem, but if it means I need to change all of the helpfiles, then it's probably not going to get changed. There may be a way for me to fix it automatically though, and maybe even go a little further...

Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 20th Jul 2010 16:41 Edited at: 20th Jul 2010 16:42
The plot thickens.

Returning to the now invisible topic, is it the case that the returned type of your sgn() function is the same as it's argument?

There does seem to be a problem with the DBPro case statement though. The following code using "if" works as one () might expect:



[Edited code tags - bet you saw that too!]
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 26th Jul 2010 23:49
Here's a new release of the plug-ins - it's pretty much all fixes, precautionary changes, help updates etc, and no new functionality:

Matrix1Util_02 - 1.1.0.9
- Fix to HITIMER calculation to avoid rounding errors that could have major effects.

Matrix1Util_03 - 1.1.0.6
- Fixed GET SYSOBJ NAME$ to work correctly.

Matrix1Util_05 - 1.1.0.8
- Added user freelists to the help.
- Switch to alternate & much faster version of FIND FREE IMAGE.
- Switch to alternate & much faster version of FIND FREE SPRITE.

Matrix1Util_12 - 1.1.0.9
- Added function and command for setting/getting a limb's cull mode.

Matrix1Util_14 - 1.1.0.2
- Fix 64 bit OS detection.

Matrix1Util_15 - 1.1.0.5
- Move Destructor code to PreDestructor, as relying on the DBPro window existing.

Matrix1Util_18 - 1.1.0.10
- Move Destructor code to PreDestructor, as relying on Basic3D not having been unloaded.

Matrix1Util_19 - 1.1.0.8
- Move Destructor code to PreDestructor, as relying on Basic3D not having been unloaded.
- Clean up function-pointer collection code.

Matrix1Util_22 - 1.1.0.12
- Updated help files to include directory stack commands.

Matrix1Util_24 - 1.1.0.2
- Fixed string overflow error that could cause a crash.

Matrix1Util_26 - 1.1.0.3
- Fixed parameter order for SET SPRITE VIEW
- Fixed return values for SPRITE VIEW XXXX functions
- Move Destructor code to PreDestructor, as relying on many other DBPro DLLs not having been unloaded.

Matrix1Util_29 - 1.1.0.3
- Added shell sort (unstable) and comb sort (stable) to sorting of arrays.
- Fixed minor memory leak in multi-field comparison class.
- Squeezed a few more cycles out of the UDT comparisons.
- Null and empty strings are now treated as equal values.
- Added CLEAR ARRAY ITEM command.
- Move Destructor code to PreDestructor, as relying on Core not having been unloaded.
- Fixed minor bug with string clearance for type-2 arrays.

Matrix1Util_32 - 1.1.0.2
- Move Destructor code to PreDestructor, as relying on several other DBPro DLLs not having been unloaded.

Matrix1Util_33 - 1.1.0.1
- Added extra error checking to MAKE IMAGE commands.
- Move Destructor code to PreDestructor, as relying on several other DBPro DLLs not having been unloaded.

Attachments

Login to view attachments
GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 28th Jul 2010 01:47
I was soo excited until I saw this:

Quote: "and no new functionality:"


IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 28th Jul 2010 20:38
Well, I'm sorry to disappoint you

Anyway, hopefully the next release will contain at least one new plug-in.

Wilf
Valued Member
17
Years of Service
User Offline
Joined: 1st Jun 2006
Location: Gone to Unity.
Posted: 29th Jul 2010 17:28 Edited at: 29th Jul 2010 22:23
Hi Ian,

I just refreshed all my matrix1.dlls and I think I've found a compatibility issue between the most recent Matrix1Util_20.dll and Barnski's Lua Plugin 1.1.1.

Barnski's lua 'register function ptr' command causes a silent exit with the latest matrix1util_20.dll, but doesn't with an older version of matrix1util_20.dll from 2008.

I've attached the two .dll's that play nicely together.

It's not a big issue right now as I can use the older matrix1util_20.dll. Silent exits are nasty though!

Attachments

Login to view attachments
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 29th Jul 2010 21:48 Edited at: 29th Jul 2010 21:50
Now here's the thing - the only command of mine in that program is GET PTR TO THIS FUNCTION, which appears to be operating correctly in all of my test suites. All of the GET PTR TO XXXX FUNCTION functions work correctly, even though they have been superseded by the 'name' functions.

Another thing is that the version of the function pointer plug-in you have is the version prior to the TGC Convention, soon after which the plug-in was pretty much rewritten from the ground up to allow the function name functionality, so tracking down the issue if it is anything to do with my plug-in is going to be difficult.

Finally, I'm not sure what you think that I can do about Barnski's plug-in crashing - remember, the only thing that my plug-in is providing to his plug-in is a function address, nothing more. I don't have his source code, so I don't know what his plug-in is trying to do with the function pointer after it has got it.

Are you getting a crash log file from DBPro?
Do you get a valid pointer value from my plug-in (i.e. non-zero)?
Also, try using 'SET CALL FUNCTION TUNABLES 64, 10' at the start of your program and see if that makes any difference at all.

[EDIT]BTW, your example code is missing the LUA MAKE command - I'm guessing this is an accidental omission?

Wilf
Valued Member
17
Years of Service
User Offline
Joined: 1st Jun 2006
Location: Gone to Unity.
Posted: 29th Jul 2010 21:51
Hi again,

Another crash, this time in the most recent Matrix1Util_22.dll. On exiting the program, the exe crashes in ntdll.dll (doesn't happen with Matrix1Util_22.dll dated 15.11.2009)

This is because a Datafile (the log) was left open on exit. I've worked around it by disabling the escape key and calling 'Close Datafile log' followed by End when the escape key is pressed. Can't remember how to detect for when the close window button is pressed just now, because it crashes there too.

Thanks again for your indispensable dlls!

Attachments

Login to view attachments
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 29th Jul 2010 22:10
Again, I can't reproduce this on my system - what OS and service pack level do you have?

Wilf
Valued Member
17
Years of Service
User Offline
Joined: 1st Jun 2006
Location: Gone to Unity.
Posted: 29th Jul 2010 22:22
Win XP 32bit SP3.

- No crash log
- Yep, pointer is valid
- SET CALL FUNCTION TUNABLES 64, 10 doesn't help
- Yes I accidentally omitted Lua Make, but that code doesn't crash with the older version of matrix1util_20.dll. Lua Make is the first line of code in my main program, followed by setup log.
- speaking of which, the biggest omission was the entire write to log function! I blame copy/paste -



I'll try a complete DBpro reinstall I think.
Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 1st Aug 2010 21:02
IanM

There seems to be a bug in your make object plain function.

The following code gives an "unhandled exception error" on both my XP laptop and my Vista PC:



Experiments suggest it goes wrong somewhere between 102 and 110. Perhaps the limit is not 65536 vertices as your help file suggests?
GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 2nd Aug 2010 05:24 Edited at: 23rd Aug 2010 01:36
IanM

Ran into a problem with some code and couldn't track it down for the life of me. I did find it eventually.

Not sure if this is how you intended the wrap command to work or not, perhaps I am using it wrong. I have an array SomeArray(2559) and I want to wrap the beginning and end, and I thought that wrap(value,0,2599) would work, however if value is 2560, it becomes 1, when I would expect the value to be 0. Am I using the command wrong or is this a bug?

For now, I have replaced all instances with wrap(value,0,2599+1) and it works, but I am still not really comfortable with how it looks.

Thanks for everything!

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 4th Aug 2010 14:49 Edited at: 4th Aug 2010 15:28
@IanM
I can't seem to use "set message callback" without getting an exception when the program is closed.



I know setting the display mode etc. from inside the callback is iffy, but it appears to work fine, and the exception is still caused even when everything is commented out.

Using set display mode works amazingly well to prevent stretching, I would have expected flicker at least if it even worked!

edit:
Adding 'sync rate 0' seems to fix it...

[b]
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 4th Aug 2010 15:31
I'm not sure what's going on there, but removing the callback and then adding it back after changing resolution stops the crash - the results aren't pretty on my machine though.

I'll take a better look later tonight.

@GIDustin,
I'll fix this for the next release.

@Green Gandalf,
I'll take a look. Usually that kind of error is caused by something I've done wrong.

Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 4th Aug 2010 21:44
OK, email me a fix if you want me to test it.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 4th Aug 2010 23:06
I found this in the DBPro source code:

So sorry, there's nothing I can do to fix this.

The basic restriction is a grand total of 10922 actual tiles (6 indices per whole tile), so 104x104 cells is the largest square plane you can have.

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 4th Aug 2010 23:41
@Diggsey,
Yes, that's the problem - the results I got earlier today were due to an error in the DBPro code I threw together to test. Here's the corrected version (hacked into an existing piece of example code):


Green Gandalf
VIP Member
19
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 4th Aug 2010 23:57
Quote: "So sorry, there's nothing I can do to fix this."


I can live with that. Perhaps you need to edit your Help file to reflect that limitation? At the moment it's misleading.

Actually, that's a surprising limitation. Is it really necessary that DBPro should be backwards compatible to that extent? I vaguely recall a discussion about that somewhere but forget the details.

I guess the practical significance is that high poly models must have many limbs.
Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 5th Aug 2010 01:08
@IanM
I think you are getting a different problem from me. For me my original code works perfectly except for when the program is closed: at that point an exception is thrown. The only way to stop it seems to be to add 'sync rate 0'.

Your example is exactly the same: it works fine until I close it, at which point it raises an exception.

[b]
SimonNeill
13
Years of Service
User Offline
Joined: 9th Aug 2010
Location: Colchester, UK
Posted: 9th Aug 2010 20:56
@IanM
Just installed for the first time, great! How did I do without them?
Having problems though with the Ptr To Function (etc) commands. Code compiles OK but getting the runtime error
... Unable to locate DBPro code Prolog ...
Is this something I'm not doing or a system problem?
Do you have a simple code snippet I could use to test functionality?
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 9th Aug 2010 22:17
It's an internal error that should never appear.

Can you send me a zipped copy of the exe that fails so that I can analyse it? A copy of the source code for that program would be useful too.

Here's a very small piece of test code for basic 'call by name' functionality:


Here's one for calling via pointers:


SimonNeill
13
Years of Service
User Offline
Joined: 9th Aug 2010
Location: Colchester, UK
Posted: 9th Aug 2010 23:18
@IanM

Thanks for the reply.

Attached a zip file of source and executable.

I've used your example as it causes exactly the same runtime error.

Attachments

Login to view attachments
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 9th Aug 2010 23:41
Which version of the DBPro compiler are you using? The exe you've sent appears to be produced by a compiler prior to 7.1.

The exe is missing a big chunk of data that the later compilers add to the _virtual.dat file, and that's causing the failure.

Here's the upgrade page - I suggest 7.5 for full functionality, but most everything will work with slightly earlier versions.

SimonNeill
13
Years of Service
User Offline
Joined: 9th Aug 2010
Location: Colchester, UK
Posted: 10th Aug 2010 00:10
@IanM

Hmmm.

Yep .. updated to 7.5 ... Bingo! no problems.

Old version was 7.0 - bit of a surprise as I only purchased this version of DBPro in the last week. Selecting check for upgrades came back with fully updated. That'll teach me to believe everything that comes up on the screen!

Thanks for all your help.
Steele
20
Years of Service
User Offline
Joined: 25th Oct 2003
Location: Somewhere over the rainbow
Posted: 14th Aug 2010 20:40
Hi Ian,

I'm looking at the RNG functions and within the help it shows a "Relative speed". For example: Make Rng KR has 60 for a relative speed. What is the 60 in relation to?

By the way, these are some nice little functions you have.

Thanks,

Steele

Maybe it's just a bunch of stuff that happens. -- Homer Simpson
Syncaidius
19
Years of Service
User Offline
Joined: 22nd Mar 2005
Location: United Kingdom
Posted: 14th Aug 2010 22:51 Edited at: 14th Aug 2010 23:10
I'm not sure if this has been fixed already (I haven't had much time to read through all the posts) but, if I run the following code:

I get the following error:
Runtime Error - Bank 1 already exists at line 1

I think it may be the wrong error for what actually happened, since the memory bank doesn't actually exist when I run that command.

I spent most of today on my main project trying to find out where i could possibly of screwed up at creating the same membank ID twice. Its only after I tried every possible problem I could think of did I realize its a bugged error message. As soon as I added
MAKE BANK bankID,size before it to test, it ran fine:


It seems like a silly mistake now, but because the error message was a lie, It took over 12 hours to figure what was actually wrong (the membank didn't exist). I think it was meant to say that the memory bank doesn't exist, rather than already exists.

sladeiw
14
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 15th Aug 2010 17:23
I have used the wrap command extensively and like gidustin I ran into the same problem. I don't know how widely it's used by other people but if you change it's functionality then every wrap statement would need correcting.

Login to post a reply

Server time is: 2024-04-19 14:05:45
Your offset time is: 2024-04-19 14:05:45