Can "Small Visual Basic" only output form ?

Scout 136 Reputation points
2022-11-04T21:54:28.827+00:00

After the release of sVB 2.5.5 with the note that existing extensions can be used, I tried to get the current program from ArdiArdi "3D func graphs: DFTG714.000" running.
Integrating the extension is very easy by copying litdev.dll with the XML files into the /bin/lib subdirectory.
The function descriptions of the extension are taken over cleanly and support the correction of syntax errors.

257391-dftg714000.png

After saving and starting the program, however, there was only an overlay, an empty GraphicsWindow and an empty DosBox(TextWindow)

257365-dosbox.png

I then compared SmallBasic , Small Basic Prime and Small Visual Basic in terms of the files created in the program directory and which windows are created.

Small Basic Prime generates the least effort:
exe file
dll files that have been activated
GraphicsWindow and/or TextWindow if used

Small Basic generates:
exe file
pdb file
dll files which are in SmallBasic/lib
an overlay
GraphicsWindow and/or TextWindow if used

Small Visual Basic produces:
A subdirectory /bin with
Copies of all txt files from the program directory
exe file
pdb file
xml file
dll files which are in SmallVisualBasic/bin/lib and are required
dll SmallBasicLibrary
dll SmallVisualBasicLibrary
an overlay
GraphicsWindow without function
DosBox/TextWindow without function

257377-subfolderbin.png

----------

My guess is that Small Visual Basic always needs a form and all I/O goes through it.

Small BASIC
Small BASIC
A programming language created by Microsoft that serves a stepping stone for beginners from block-based coding languages to more complex text-based languages.
277 questions
0 comments No comments
{count} votes

Accepted answer
  1. Small Visual Basic 401 Reputation points
    2022-11-07T01:42:06.82+00:00

    Hi @Scout
    I am afraid I didn't test this feature enough. There is a big issue that I thought I solved, but I was wrong.
    sVB doesn't require a form, but the issue comes from the GraphicsWindow. When you show this window from sVB, it shoes the one created by the SmallVisualBasicLibrary.dll, but LitDev targets the SmallBasicLibrary.dll, so the app hangs when LitDev tries to pass data between threads.
    I don't know how to fix this now. I can't remove the GraphicsWindow from sVB and depend on the SB GraphicsWindow, because I made changes to the Lib, and I can't load two versions of them in the code editor!
    Seems that the best solution is to create a LitDev version that targets SmallVisualBasicLibrary.dll, and make use of the winform lib of sVB. I tried to do it myself, but the recent source of LitDev has many dependencies and caused errors.
    So, right now, the safe thing to do is to use litdev with SB. It will not make use of any important feature in sVB anyway.
    And I will keep searching for a solution.
    Thanks.


1 additional answer

Sort by: Most helpful
  1. Small Visual Basic 401 Reputation points
    2022-11-07T08:14:40.81+00:00

    I may have a solution, by creating a wrapper lib for LitDev that contains the same classes with the same methods but they will only call the corresponding methods in litDev. The only deference is that the wrapper methods params and return values will be of type sVB.Primitive, and they will do the necessary conversions to and from the SB.Primitive to relay the communications between the two worlds.
    I need to test this, and if it works, I will add a wrapper generator to sVB to do this automatically. This will also need to modify the xml file of the lib so sVB can show the lib documentation while dealing with its wrapper.
    This ill need sometime to do.
    Thanks.

    0 comments No comments