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
Green Gandalf
VIP Member
18
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 2nd Oct 2010 13:57
Looks like the return type has got screwed up somehow. Try this:

sladeiw
13
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 2nd Oct 2010 15:03
Yes that's what I thought. I did include a typed return byte value in the demo code, just to show that it works. But you can't include mid ascii() in statements the same way as you can with asc(). eg.

IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 2nd Oct 2010 15:17
Just wrap it in it's own function for now:


When I do the next release, you can remove that function and then carry out a global search/replace.

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
sladeiw
13
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 2nd Oct 2010 15:29 Edited at: 2nd Oct 2010 15:29
Quote: "Just wrap it in it's own function for now:"


Cheers, it was just to let you know.

I won't use it for now because I was only replacing asc(mid$()) statements in loops and calling a function 1000's of times wont be optimizing much.
BatVink
Moderator
19
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 29th Oct 2010 22:42
I am having a problem with padleft$ / padright$

score$ = str$(gScore.displayScore)
score$ = padleft$(score$,"0",5)


result:

Quote: "Subscript must be Integer or DWORD when referencing an array at line 612."


I separated out the code to prove the error was with padleft$. it's sibling has the same error. The function is highlighted in the editor, but it seems the compiler sees it as a custom array.

tiresius
20
Years of Service
User Offline
Joined: 13th Nov 2002
Location: MA USA
Posted: 30th Oct 2010 06:55
That works for me.

My Matrix1Util_16.dll is version 1.1.0.7 and I'm using DBPro 1.075


A 3D marble platformer using Newton physics.
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 30th Oct 2010 13:37
My guess is that the plug-in has been moved to one side or removed - that's the default error message you get when you try to call a function or access an array that doesn't exist or because you mistyped it.

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
BatVink
Moderator
19
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 30th Oct 2010 18:17
How bizarre, I had the latest help files and 1.1.0.2 of the dlls

Thanks!

BatVink
Moderator
19
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 31st Oct 2010 22:51
Struggling a little with MAKE IMAGE...

make image 1,100,100,21
make memblock from image 1,1


When making memblock, this results in:

Quote: "Runtime Error 507 - Cannot read an image currently locked by system at line 8"


I though this was maybe because at creation, it becomes the draw target and this locked, so I tried:

make image 1,100,100,21
draw to bitmap 0
make memblock from image 1,1

but this didn't fix the problem. Any ideas?

Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 1st Nov 2010 14:45
Images that are capable of being drawn to (like those created by 'set camera to image', and IanM's 'make image' command) reside in a different memory pool to normal images. Apparantly 'make memblock from image' isn't able to read from them.

If you need to edit the image, I suggest that you use a pixel shader to edit the image rather than moving it to normal memory and back.

If you just need to get the data from the image, can you not render to a bitmap, and then make a memblock from that?

[b]
Teh Stone
13
Years of Service
User Offline
Joined: 12th Dec 2009
Location:
Posted: 18th Nov 2010 19:29
i know i probly havent looked properly but is there a guide anyway that shows you how to install your plugin i have no idea how i would do it and i really want to

thanks in advance been searchin for a while
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 18th Nov 2010 21:35
There's no need for a guide, as everything within the zip is prepared to just drop into place when it you extract it to the right base directory.

Using your zip program of choice, select 'extract' and simply locate your 'Dark Basic Professional' installation directory and click OK.

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
Teh Stone
13
Years of Service
User Offline
Joined: 12th Dec 2009
Location:
Posted: 18th Nov 2010 22:29
that worked fine haha didnt think it was that easy now ive just gotta learn the new commnds
Duke E
13
Years of Service
User Offline
Joined: 10th Mar 2009
Location:
Posted: 19th Nov 2010 08:14 Edited at: 19th Nov 2010 08:14
Having problems with "find free object" in Matrix1Util_19 (DBPro 7.5)
I get a crash when it is invoked. The "find free image", "find free memblock" and so on from the Matrix1Util_5 are working.

Regards
Duke
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 19th Nov 2010 18:08
Can you post example code that crashes for you (including media if used)? Also, what OS do you have installed?

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
Duke E
13
Years of Service
User Offline
Joined: 10th Mar 2009
Location:
Posted: 20th Nov 2010 12:55
I am using Windows XP SP3 on all my rigs (all crashes). Don't think it is a conflict with other plugins as my test rig is a bare minimum install (no other plugins).

Extremely complicated source :


Regards
Duke
Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 20th Nov 2010 21:06
Works for me Do you have the latest version of the plugin? (IIRC there may have been a problem before if you didn't use any commands from Basic3D and called 'find free object')

[b]
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 20th Nov 2010 21:37
That's a good point. I'd like to know the file version from plug-in number 19 (right-click, select properties, select 'detail' tab).

Also, I'd also like a copy of your failing exe file - can you zip it up and upload it here so I can take a look at what it contains?

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
Duke E
13
Years of Service
User Offline
Joined: 10th Mar 2009
Location:
Posted: 21st Nov 2010 11:24
The version is: 1.1.0.8

Application.exe attached using the same source i posted before.

Attachments

Login to view attachments
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 21st Nov 2010 17:17
For some reason plug-in 20 is missing from your executable. Have you got it installed? Normally, that plug-in is automatically included by plug-in 19.

In addition, your dbprocore.dll and dbprolightdebug.dll don't appear to be the correct size for 7.5 - can you try reinstalling the 7.5 update and see if that clears the problem.

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
Duke E
13
Years of Service
User Offline
Joined: 10th Mar 2009
Location:
Posted: 22nd Nov 2010 02:30
Aha, Matrix1Util_20.dll solved the problem. I assumed the separate dll's where standalone by them self, have put all of them in the plugin-user directory now. Thanks for a great set of plugins.

Don't know why the DBPro dll's are a different size though. Maybe it is because i have the free version installed on the computer i compiled it on?

Regards
Duke
Scraggle
Moderator
19
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 23rd Nov 2010 20:51
Ian,
Something I have wondered for a while but find near impossible to test:
Will this code guarantee unique ID's

or do I need to do this?


Not a big issue but thought it might help debug intermittent problems if the later is necessary.

Thanks



IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 23rd Nov 2010 21:52
You should use the second method. Until you actually use the ID, it's still free - the functions don't allocate or reserve the ID.

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
Stormwire
12
Years of Service
User Offline
Joined: 3rd Sep 2010
Location:
Posted: 24th Nov 2010 20:10 Edited at: 24th Nov 2010 21:11
Hey IanM

I am having a problem with the NICE WAIT KEY command.



The problem is nothing prints to the screen. When I try NICE SLEEP or even NICE WAIT 5000 the message Finished gets printed.



This prints but closes without waiting for a key press.
Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 25th Nov 2010 23:32
@Stormwire
You need to call 'sync' to update the screen

DBPro is double buffered, meaning any drawing occurs on a hidden surface known as a backbuffer. The sync command copies the data from this backbuffer to the frontbuffer (aka the screen). If you draw to the backbuffer and then wait for a key, the results are never copied to the frontbuffer.

[b]
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 26th Nov 2010 14:34
Actually, Stormwire's right - when you don't use SYNC ON, then WAIT KEY does allow the display to be updated, as do the WAIT/SLEEP commands.

However, I can't reproduce the problem he has reported with the NICE WAIT KEY or NICE WAIT commands - they are working perfectly fine for me.

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
Scraggle
Moderator
19
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 27th Nov 2010 14:51
Maybe I'm overlooking it but I can't seem to find a way of checking to see if a datafile is open.
I want to be able to close a datafile but check first to see if it is open.

Also, could you please explain the difference between a datafile that is open to append and one that is open to update.

Thanks



IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 27th Nov 2010 15:15
There are two ways to check if a file is open.

The first (original) way is to use the DATAFILE EXIST function - the file id will not be used if the file does not open correctly.

The second way (preferred) is to use the function forms of the open commands to check if they succeeded as you open the file:

Again, the file id will be not used if the file does not open.

The difference between append and update is that update will write to wherever the current position is set to within the file, while append will always write to the end of the file. Append is useful for log files (especially where the file is used by multiple processes, and as long as you also remember to flush the output too or activate automatic flushing).

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 3rd Dec 2010 21:18
Here's a new release for you all - pretty much it's all bug-fixes.

Release 20101203

Matrix1Util_01 - 1.1.0.5
- Fix error messages for all commands that require a bank to exist.
- Changed order of string searches in banks.

Matrix1Util_07 - 1.1.0.7
- Fixed Wrap functions (again!).
- Fixed typo on Log2_double function name.
- General code cleanup for maths functions.

Matrix1Util_10 - 1.1.0.4
- Minor cleanup of code in commands.
- Replace use of 'sprintf' with my own version:
-- No more possibility of buffer overflows - crash can now only occur when the function is expecting a string and some other data type has been passed.
-- Handle float values
-- Created own custom format strings - should be slightly simpler than printf.

Matrix1Util_16 - 1.1.0.8
- Added new function GET SPLIT WORD POS.
- Added alternate names for existing functions SPLIT WORD POS, SPLIT WORD$ and SPLIT WORD DELIMITER$.
- Force MID ASCII to return an unsigned value.
- Empty strings all pass back null, rather than allocate 1 byte of memory.

Matrix1Util_18 - 1.1.0.11
- Reinstate checks for index buffer > 65535 - this is all DBPro will allow.
- Transactional object creation (BEGIN NEW OBJECT):
-- Can now set a texture id of 0 to indicate no texture (default setting).
-- Add new colour setting for transactional object creation.

Matrix1Util_24 - 1.1.0.3
- Fix errors with re-use of internal buffer used for string manipulations.
-- Caused some strings empty strings to be returned in error.

Matrix1Util_29 - 1.1.0.4
- Minor performance enhancements.
- Applied fix for array load/save for 1D arrays that have been resized.

Utility plug-ins (26-JUL-2010)
I'm applying terms of use that require you to wear a red nose and honk a horn whenever you use the Internet

Attachments

Login to view attachments
sladeiw
13
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 4th Dec 2010 22:47 Edited at: 6th Dec 2010 10:51
Thanks! Now off to fix all my wrap() loops.



ps: Don't forget to update your sig link
Dar13
14
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 5th Dec 2010 21:46
Hey IanM, can you tell me how you went about making the find free object command? I'm starting to develop in DarkGDK, and I found that command(along with all the other find free XXX commands) to be invaluable when it comes to asset management. I'm mostly curious as to how you accessed the g_ObjectList(or did you use the g_ObjectListRef instead?).


IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 6th Dec 2010 20:20
I used neither one, as they aren't accessible outside of the DLL (or at least, not with a heck of a lot of work that I'm not willing to go through).

No, what I did was intercept all of the functions that result in an object being created, and the delete object function, so that it calls my code at the appropriate point. I then use that to track which object id's are being created and freed as they happen.

I have a class specifically designed to track free id's that is very efficient in it's memory use.

Looking for the lowest free id is carried out in O(1), and when searching in a range, is carried out under O(log n), where n is a function of the number of ranges of free id's, not the actual number of free id's, so it's very fast. Allocation of a free id is also O(log n). (Link to O notation)

Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 10th Dec 2010 15:46 Edited at: 10th Dec 2010 15:47
@IanM
Can you provide an example of texturing a full-screen quad (with an effect applied) with an image created using 'make image' and updated each loop using 'draw to image' with some 2d drawing commands?

I originally used 'texture screen' and 'set screen effect', which A) only seems to work using 'set camera to image' rather than 'make image' (which appears black), and B) 'set effect constant xxx' seems to have no effect when used on a screen effect. (Unless you have an example which works?)

Then I tried creating a quad using a plane, but the image is either black or the effect is not applied, depending on the order of 'texture object' and 'set object effect'.

[b]
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 10th Dec 2010 21:35 Edited at: 10th Dec 2010 21:36
Here you go:


Two things to remember here - you need to redirect camera 0 to an image (I thinks it's because screen effects work on cameras, not images - images are targets), and you need to redirect drawing back to bitmap 0 when you've updated your image.

Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 11th Dec 2010 12:31 Edited at: 11th Dec 2010 12:50
Thanks, it seems I must have been having some other conflict or something, as I tried almost that exact code before, only to find that I couldn't set parameters in the effect! When I try that code on its own it now works, and I can set parameters normally.

[b]
Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 14th Dec 2010 01:13 Edited at: 14th Dec 2010 01:22
I have an idea for a really useful feature:

Some form of exception handling. Basically, you could call a 'throw' command with some data, and it will automatically unfold the stack up until the last try/catch block. It wouldn't have to be compatible with windows exceptions, just something we can use in our own code.

At the moment I'm writing a piece of code to load in a save-file. If there is an error it would be much easier just to throw an exception rather than somehow manually jump out of all the functions.

This is how it would work:



When called normally, "push_ex" pushes the value of the current registers onto an internal stack, and then returns 1.

If "throw" is called, it saves the data passed in and then restores the registers to the values on top of the internal stack, except that it changes one to indicate to the "push_ex" function that it should now return 0.

Since it now returns 0, the else statement is run (AKA the catch statement). This calls the "get_ex" statement which puts the stored exception data into the variable you specify (ex$). The program can handle the exception and then continue normally.

If throw is not called, the catch statement causes the "pop_ex" command to be called which pops the data off the internal stack, and the program continues as normal, skipping the else block.

The only problem I can see with this is that of strings not being freed on a "throw". However, there are three ways around that I can see:
A) If DBPro keeps track of strings internally, this could be one of the things restored when "throw" is called. If it doesn't already, then overriding the string functions is an option to add this functionality.

B) A helper function which registers string variables with the plugin, allowing the plugin to automatically free them in case an exception is thrown.

C) Instead of this hacky method, implement it directly into the DBPro compiler. However, am I right in thinking you only have access to the code for the DBPro dlls, not the compiler?

[b]
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 14th Dec 2010 15:21
The exception handling is not as simple as you've laid out, but it's definitely doable. It needs to take into account the coroutine implementation I have, so the stack would be per-coroutine.

The problem is with the potential for memory leaks of strings and arrays - basically, what you've suggested won't work:


If x$ is global, then it shouldn't be freed. If x$ is local, but there is code after the endcatch, then again it shouldn't be freed. It's only if x$ is local and you throw to an outer scope that you want the string to be freed.

DBPro uses static means to determine string lifetime, not garbage collection, so you can't just leave it to DBPro to clean up leaked memory.

I'm pretty sure that this isn't soluble, not without a fairly hefty re-engineering of DBPro strings and arrays, which would have implications for all plug-ins.

Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 14th Dec 2010 18:29
I have a solution for the string and array memory. Each function has some code to handle freeing memory when it returns, right? If you could trace the stack out and run this code from each function it would be as though they had all simply returned.

No need for any reorganisation

[b]
sladeiw
13
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 16th Dec 2010 16:03 Edited at: 16th Dec 2010 16:05
I have an issue with the array saving/loading that seems have appeared with the latest matrix1 update. Running the below code with the latest update causes an array resize error, with the previous version it works. I checked my old/new array saved files with a hex editor and there are a couple of discrepancies.



Since my array has 101 elements (0-100) I'm assuming the problem is with the size stored in the above header info. In the new dll version it's hex 65 in both positions, in the old the 2nd occurence is hex 64. If I edit the new created file back to 64 it loads ok again.

I can't see anything I'm doing wrong, hopefully this is enough info to find the bug easily.




edit: Had the hex files wrong way round!
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 16th Dec 2010 23:01
I think I see where I went wrong with that fix - give me a day or so to get my new system up and running, and I'll get a quick fix out.

IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 23rd Dec 2010 11:13
Here's the last release for this year:

Matrix1Util_02 1.1.0.10
- Added frequency-based tickers.
- Fixed minor bug that would cause infinite tickers to expire when reset.
- Added checking for valid ticker id's around the WAIT FOR TICKER commands.
- General code cleanup.

Matrix1Util_20 1.1.0.10
- Change coroutine stacksize reservations from number of MB to number of KB, rounding up to 64 KB boundaries.
- Do not allow coroutine 0 to be created (it already exists).

Matrix1Util_29 1.1.0.5
- Corrected fix in previous release for resized 1D arrays.

Attachments

Login to view attachments
sladeiw
13
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 23rd Dec 2010 13:27
Fixed the array prob, thanks & happy holidays!
isse
12
Years of Service
User Offline
Joined: 27th Dec 2010
Location:
Posted: 27th Dec 2010 13:34 Edited at: 27th Dec 2010 13:50
Hello

Happy holidays to you...

Newcomer here and havin problem, sorry if this goes out to wrong message area. Reading and learning from here.

Well my problem is. Searching for WndProc menubar code. Found one but it puts error out in my system. Hopefully I got it here right.

Message area was so old it was not possible post it there.

ErrrorMessage from DBP is:
EXITFUNCTION and ENDFUNCTION must return the same data type at line 244.

I Put mark there in code if you like take a look

Thank you for an answer
Happy new year 2011
isse

ps. This is my first message here, sorry if this doubles out, but first one was gone out... and i don't know where



What a wonderful world this is for the newcomer
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 27th Dec 2010 14:01 Edited at: 27th Dec 2010 14:05
That's a compiler problem - sometimes it gets the check slightly wrong, but it's easy to correct by changing the return value into an expression.

Change the offending line to:


In addition, although the compiler allows it without complaint, I also suggest that you never return a literal string from the ENDFUNCTION or EXITFUNCTION commands (it has been known to cause wierd runtime errors). Instead use a variable, even if you have to create one for that purpose.

With those changes, the code compiles, so all you need to do now is sort out the array runtime error

isse
12
Years of Service
User Offline
Joined: 27th Dec 2010
Location:
Posted: 27th Dec 2010 16:10
Hi IanM

Thank you for an answer...

Huh I try to solve that array problem next... so you see me again next summer

Have nice evening there
isse

What a wonderful world this is for the newcomer
Pixel Paint
15
Years of Service
User Offline
Joined: 15th Sep 2007
Location:
Posted: 27th Dec 2010 23:21 Edited at: 27th Dec 2010 23:27
Hi Ian,

Your directory-returning commands don't seem to work on Win7. For example, I ask for a "dir documents()" and it returns a blank string. Am I doing something wrong or is this a compatibility problem?

EDIT: Nevermind, the problem was resolved in the latest upgrade. Thanks!
isse
12
Years of Service
User Offline
Joined: 27th Dec 2010
Location:
Posted: 28th Dec 2010 00:24
Hi Ian and everobody else here

I Found out solution for my programming problems temporarily. I give up for a moment with DBP and switched PureBasic. I have lots of source code in Borland ProPascal, needed updates because time has flight little bit ahead with thos Pascal programs. Sorce codes are assits programs for disabled persons and yes PureBasic is much easier to me, and has lots lots of examples in help files. And yess I'm workin already with them and with PB.

Thank you anyway you are really nice person, and wow what a programmer. Hope everything good to you
isse

What a wonderful world this is for the newcomer
Silverman
16
Years of Service
User Offline
Joined: 18th Jan 2007
Location: France
Posted: 28th Dec 2010 16:43 Edited at: 28th Dec 2010 16:44
hi IanM

I have 'Matrix1Utility plug-ins (03-DEC-2010)' and I found a bug with the command 'fill'. Some pixels are not colored. Try this snippet:



There are black pixels in the filled circle.

AMD Athlon(tm)XP 3200+ (2.2GHz) / DDR pc3200 (3x1024Mo) / Nvidia 6800GT (driver 197.45 WHQL)/ XP Pro SP3 / DirectX 9.0c (February 2010)/ DBClassic v1.2 / DBPro v7.4
IanM
Retired Moderator
20
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 29th Dec 2010 13:16
Thanks for spotting that - it looks like I forgot that drawing under DirectX is inclusive/exclusive.

Diggsey
16
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 2nd Jan 2011 16:41 Edited at: 2nd Jan 2011 16:53
Another feature request
- Could we have a way to add arguments one at a time to a function call?
eg.


This would call the function at "functionPtr" with two arguments, 3 and "Hello"

- Find exported functions in a dll

We have these functions for DBPro:
GET FUNCTION COUNT
GET FUNCTION NAME$
GET PTR TO FUNCTION

And this for dlls:
GET PTR TO DLL FUNCTION

So why not these:
GET DLL FUNCTION COUNT
GET DLL FUNCTION NAME$
GET PTR TO DLL FUNCTION (overload for by number rather than name)

(This link may help with the implementation: http://stackoverflow.com/questions/4353116/listing-the-exported-functions-of-a-dll)

- Get function format command?
Would return the types of parameters and return value of a DBPro function. I don't know how do-able this is though.

- Some sort of structured look-up system, to make up for DBPro's lack of nested arrays.

These aren't just things I think might be a good idea, I'm currently having to work around their lack of existance!

[b]

Login to post a reply

Server time is: 2023-01-29 06:22:11
Your offset time is: 2023-01-29 06:22:11