Page 4 of 7 FirstFirst 1234567 LastLast
Results 121 to 160 of 247

Thread: https://www.radbasic.dev/

  1. #121
    Lively Member
    Join Date
    May 2017
    Posts
    81

    Re: https://www.radbasic.dev/

    Quote Originally Posted by yereverluvinuncleber View Post
    These devs are building up a repository of open source code that could form a basis of something or at least a source of information, I do wish they'd publicise what they intend to open source. I watched Q7basic for a while and initially donated £25 to the cause. It would be nice to see the code be re-used, if only that for the IDE.


    How does that work? just pulling the source code files in or attempting to load the .q7b files as project files for VB6? I presume the former.
    Oops. My bad. I just glanced at the wrong project window from my 'Recents'. Forget what I said.

  2. #122
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    My position is this (only mentioning the most important "base-points" - I'm sure there's many more detail-points at lower levels, where more disagreement would ensue):
    1. C-emitting has several advantages over LLVM-usage (which I've nevertheless experimented with, but ruled out about 5 years ago)
    2. already the first release has to work in a platform-independent manner
    3. and that involves incorporating a platform-indepently designed, stable and well-tested "new Class-Runtime" already in the development-phase of new IDE and compiler
    4. point 2. also requires a COM-implementation which will work not only on Windows, but on other platforms as well
    ... (basically "a built-in regfree mode" has to be ensured from the get go, as well as a platform-independent way for "reflection", to parse out Dll-contained "COM-types").
    5. Development of new IDE and compiler should be in VB6

    In my opinion, Point 5 of the above list - is the only one where agreement exists between us (I've included it only for completeness).

    ...
    ...

    Olaf
    Occasionally see this post again, I have a few knowledge points to understand:
    (1) Is the COM mechanism the optimal software engineering mode?
    - Why did Microsoft abandon the COM mechanism in .Net?
    - Does Microsoft have a better mechanism or technology than COM?
    - Does other companies (such as Apple) have similar mechanisms to COM?
    - What technology can replace COM technology in the future?
    (2) For point 5, why should the development of new IDE and compiler be in VB6?

  3. #123
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by SearchingDataOnly View Post
    (1) Is the COM mechanism the optimal software engineering mode?
    For native compiling languages which want to produce "libs with Classes", it is nearly optimal (IMO) because:
    - it allows "interface first" design-patterns
    - it allows "interface implementation" and "interface inheritance"
    - it allows "strong typing" (for memory-efficiency and speed)
    - the Variant-Type and IDispatch allow "lazy typing and -calling" nevertheless (for Script-like scenarios and -bindings)
    - standardized Error-transport-mechanism (via HResults)
    - does not require C++ compilers (COM-classes can be build with plain C)
    - Class-instances are ref-counted (immediately cleanup when they go out of scope, no parallel running Garbage-Collecting instance needed)
    - BSTRs and SafeArrays are also self-describing (typed) memory-allocations which are easy to work with
    - libraries can be made "self-describing" (compiled with descriptions for all Types, Classe and Methods in these Libs)

    Quote Originally Posted by SearchingDataOnly View Post
    - Why did Microsoft abandon the COM mechanism in .Net?
    .NET is a different "universe" (VM-based, Garbage-Collection, "everything is an Object", entirely different ABI)
    And MS never "abandoned" COM - it's still their "first layer on top of the flat-APIs".
    .NET-Classes often only wrap existing COM-Objects.

    Quote Originally Posted by SearchingDataOnly View Post
    - Does Microsoft have a better mechanism or technology than COM?
    No, they still develop all their important Class-libs with it (Direct2D, DirectWrite, DirectX, their whole Office-Productline)...
    Recent example: the shiny new WebView2-EdgeChromium-Binding is a COM-library (in 32 and 64-bit versions).

    Quote Originally Posted by SearchingDataOnly View Post
    - Does other companies (such as Apple) have similar mechanisms to COM?
    Yes, Swift-Classes have "ARC" (similar to COM-refcounting).
    Rust has refcounted Classes, even Gnome/GLib (GTK) supports refcounted Class-Structs in "plain C".

    Quote Originally Posted by SearchingDataOnly View Post
    - What technology can replace COM technology in the future?
    As said, IMO it is currently "near the optimum" for:
    "Strong typed, native compiling languages, which want to support deterministic behaviour with Class-instances"
    (whilst also having support for "script-like lazy typing").

    Quote Originally Posted by SearchingDataOnly View Post
    ...why should the development of new IDE and compiler be in VB6?
    1) because it's COM-based ...
    2) because the old VB6-IDE (and language) is still great and produces speedy binaries
    .. (there really is no other reason, why anyone would write a new VB6-compatible environment in the first place...
    ... and therefore: "put your hands where your mouth is"
    3) and of course: because a new IDE and new Compiler which is entirely compatible (first developed/compiled with the old IDE/VB6-compiler)
    4) ...allows immediate selfhosting in the end (a recompiling with the just produced new compiler).

    Olaf

  4. #124
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    Very insightful explanation, solved my doubts for many years. I'll continue to use COM technology. Much appreciated.

  5. #125
    Registered User
    Join Date
    Jul 2019
    Posts
    1

    Re: https://www.radbasic.dev/

    BREAKING UPDATE!!!

    RAD Basic has reached alpha stage. Roadmap has been established

    Announcement

    RAD Basic Roadmap

  6. #126
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    Let's do that properly.

    Latest video showing sample calculator and notepad


    March 2021 - Kickstarter campaign launch

    The crowdfunding campaign will be active for 30 days
    Getting funding for converting the free time project to full time project.

    May 2021 - First public alpha release

    The alpha release will be available as a reward of Kickstarter campaign.
    It won't be feature complete, but it could compile some projects in the wild along the samples shipped.

    November 2021 - First public beta release

    The beta release will be available as a reward of Kickstarter campaign.
    It will be feature complete (or nearly feature complete). With this release a intensive test phase will begin.

    February 2022 - RAD Basic 1.0 release

    The final release will be public available.
    It will be available early for kickstarter backers.

  7. #127
    Member
    Join Date
    Nov 2018
    Posts
    56

    Re: https://www.radbasic.dev/

    Tread carefully. I've just watched all the YT vids, and there's nothing there that proves or even convincingly portrays lexing, parsing, compilation, linking or execution. A similar demo could be put together in a day or so without anything behind it. Perhaps the object browser is somewhat live, but it's not at all hard to read a typelib.

    Given the roadmap, I'd wait till the public alpha before putting my money down. If I turn out to be wrong, I apologise in advance.

  8. #128
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    Paranoia seems to be natural and I'm fine with it. However, I do not believe that anyone would go into that much effort unless they truly felt competent they could create such a tool. So, are you saying you need proof of the chap's competence, the technical validity of the approach or that you don't believe he is genuinely attempting the product?

    The chap needs support via a little cash then I may very well give it. I have used VB6 for long enough to afford to give someone some payback (as MS no longer wants my cash for VB6 improvements). If it encourages the man to start the task and get the ball rolling, I will do it.

  9. #129
    Fanatic Member
    Join Date
    Feb 2015
    Posts
    1,022

    Re: https://www.radbasic.dev/

    Quote Originally Posted by yereverluvinuncleber View Post
    I have used VB6 for long enough to afford to give someone some payback (as MS no longer wants my cash for VB6 improvements). If it encourages the man to start the task and get the ball rolling, I will do it.
    There do look to be some promising developments for VB6 users. TwinBasic and RadBasic both look interesting.

    For me, any alternative needs to be able to run existing VB6 apps. That includes using ActiveXs and OCXs. And intrinsic controls. What about DAO and ADO, for example? Can they be used? Would it be legal to use Microsoft controls? And can they be used in 64bit apps?
    Krools controls offer good alternatives to some of the MS OCXs, will they work too?

    Hopefully this will start to become clearer as the preview releases become available.

    My other concern is about the continued availability of these products - what happens if the developer(s) lose interest or move on? Some form of Escrow/open sourcing would be wise.

  10. #130
    Member
    Join Date
    Nov 2018
    Posts
    56

    Re: https://www.radbasic.dev/

    Quote Originally Posted by yereverluvinuncleber View Post
    Paranoia seems to be natural and I'm fine with it. However, I do not believe that anyone would go into that much effort unless they truly felt competent they could create such a tool. So, are you saying you need proof of the chap's competence, the technical validity of the approach or that you don't believe he is genuinely attempting the product?
    The technical approach, from what I've read here, seems plausible, and I have no reason to question the developer's competence.

    I'm not saying there's definitely no attempt here, just that if I were to put together a mock-up for visual purposes only, it would look extremely similar to what I see in the YT vids. I note that very little of the IDE is demonstrated - only a couple of targets clicked, no attempt to manipulate anything on the designer or interact with the code pane.

    As Schmidt has noted, it would be trivial to allay concern here by providing an exe of the most recent build. This wouldn't need to be even alpha-quality, just enough to confirm that it can indeed take simple VB6 input and compile a 64-bit output.

    According to the timetable, an Alpha is scheduled for release in May. Personally, I wouldn't invest any earlier than that unless the aforementioned proof-of-concept is made available.
    Last edited by mansellan; Mar 26th, 2021 at 07:19 AM.

  11. #131
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    I think you should imagine that the chap will do well if he receives some backing. He will/may then create a product we could enjoy using and it could all grow from there. A small company, then a small organisation and then you may have something larger to depend upon - "From small acorns grow...".

    We are all so used to open source software these days but these chaps, Twin & RAD Basic have to make money to exist, survive and thrive. He just needs to persuade us on his technical offering initially.

  12. #132
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by yereverluvinuncleber View Post
    He just needs to persuade us on his technical offering initially.
    But exactly that is not what happened so far (at least from my perspective)...

    I absolutely agree with mansellan, that the stuff we have seen so far was in no way convincing
    (from the persepective of developers who have some experience in that field).

    All the demos which came up for RadBasic, can definitely be constructed "over a weekend or two".
    (e.g. with the 64Bit version of the tinyCC-compiler in "plain C", with some help from a GUI-lib like e.g. IUP).

    What I've missed in the RadBasic-Demos is "proper COM-Class support".
    E.g. by showing the 64bit-compilation of an imported (normal) VB6-*.cls-definition file, which:
    - contained the Implements Keyword (to show that Interfaces are supported in the Class-concept)
    - contained Class-Event-Definitions and the RaiseEvent-call
    - an instance of such a Class then demonstrated within a 64Bit-Form "WithEvents"

    *That* would have been a convincing RadBasic-Demo (underlining the competence of the Author in that important field).

    But even if such a demo would have been shown, I'd still not invest any money into it -
    until I was able to replicate "the shown feats" in my own tests with an Alpha-version of the product.

    The underlying COM-layer in VB6 (and the Class- and UserControl-concept build upon it) is *everything*,
    when you want to achieve the proposed "100% compatibility" (along with OLE-Variant- and -SafeArray-support).

    Just my $0.02

    Olaf

  13. #133
    Member
    Join Date
    Nov 2018
    Posts
    56

    Re: https://www.radbasic.dev/

    Quote Originally Posted by yereverluvinuncleber View Post
    We are all so used to open source software these days but these chaps, Twin & RAD Basic have to make money to exist, survive and thrive. He just needs to persuade us on his technical offering initially.
    It's not really about open-source, licensing, or cost. Both Twin and RAD are planning to go commercial, closed-source, and proprietary, and that's am entirely valid choice. Personally, I think the community would benefit most from a FLOSS solution, but commercial is infinitely better than nothing. After all, VB6 was commercial, proprietary and closed-source, is now 20 years old, abandoned by its owner, and still popular. And as you say, people need to make a living.

    The difference is in the release model. RAD Basic is due to launch a Kickstarter campaign in the next few days, before any kind of build is made available. On the other hand, twinBASIC will make available a public preview on 7th April (assuming no slippage) and only later seek buyers. These are two entirely different propositions, spaced very shortly apart.

    One thing seems clear - in the next two weeks we'll have a better picture of the situation with both. Hence, tread carefully.
    Last edited by mansellan; Mar 26th, 2021 at 08:12 PM.

  14. #134
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Hi!

    First of all, sorry for didn't answer before. I'm more active in twitter and I didn't get any email notification of this thread.

    I want to clarify some points:

    - RAD Basic core (compiler and RTL standard libs) will be opensource: https://www.radbasic.dev/faqs.php#container-gen-faq-oss. In fact, it is a really strong point for the project. First, because I love OSS. Second, because I don't want to repeat Microsoft mistake. If the core is opensource, It can't be abandoned, or targeted to incompatible paths. It is reason of this situation: VB6 is not opensourced and Microsoft don't release new versions and targeted VB to incompatible paths.

    - About costs: Sure, if you become a backer in kickstarter, it has a cost, the cost which you want. When 1.0 will release, there are four editions, one free of charge: community edition. You could check planned editions here: https://www.radbasic.dev/editions.php.

    - Sorry if stuff shown by now is not convincing to some of you. But it really hurts words like "can definitely be constructed over a weekend or two". The project began in December 2018. This post was opened in 2019. And kickstarter didn't launched yet. Sure if all the work done is two weekend, the kickstarter campaign was launched a lot of month before. And I can assure you that I do not work two weekends of the year.

    - I have never promised any feature which I can't accomplished. You could check public comments at Facebook page about MSCOMM32: https://www.facebook.com/radbasic/?c...c1MjM4NjAwMzM2

    - Some people who are supporting me and helping me have tried one pre-alpha version. From this forum and out of this forum, as there a lot of people working in VB6 who don't know this site exists. In one of them we investigated a crash in LLVM when compiling output code. Seems there is some problem with the machine and dlls, as in other computer of same user worked like a charm. We worked lovely investigating this issue and releasing patching version for trying differents thins, but this situation could generate a very negative impact by someone being skeptical. This is one of the reasons about there weren't any public releases available yet. I prefer to make a rock solid version (although it will was a alpha version). I think is more important stability than feature-completeness for building trust.

    - Lastly, about release model: twinBASIC is developing by a company working in MS-ACCESS/VBA Field. So, it has resources for development and in fact it has now buyers, but of other products. RAD Basic is developed in my free time and the kickstarter campaign is for converting this free time project to a full time project. And it is not demanding any price, you could back in Kickstarter whatever you want, you can even pay 1$, and you will have access to community version at the end of the campaign.

    I hope I could clarify some of the points.

    Carles Royan

  15. #135
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Sorry, I forgot one thing.


    Yes, you can use ActiveX/OCX. There is a demo using MSIE ocx, well, it's up to you if you believe it https://www.youtube.com/watch?v=Fnw-cicpBR8

    DAO support is not planned. Only ADO. You could review planned components here: https://www.radbasic.dev/components.php

    About if it will be legal: I'm not a lawyer but most of these components are redistributable. So, I think If you have a legal copy of VB6, there won't be a problem.

    Regards.

    Carles Royan

  16. #136
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Oh, I'm like Columbo Detective: One last thing....

    You could check in this tweet: https://twitter.com/radbasic/status/...740170753?s=20
    Or facebook page: https://fb.watch/4ycSUz2YRc/

    A nice gif recorded while modifing size of buttons and undo action in gui designer.

    And it was all for today, I'm in UTC+2 and it's 3 AM here :P

    Regards,

    Carles Royan

  17. #137
    Fanatic Member
    Join Date
    Feb 2015
    Posts
    1,022

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post

    DAO support is not planned. Only ADO. You could review planned components here: https://www.radbasic.dev/components.php
    Why is DAO support not planned? Is it because you think it is not used much, or is it for a technical reason (because it is an intrinsic control?)?

    We have existing VB6 apps, some use DAO some use ADO. I guess many other developers have DAO apps too.

    Microsoft now recommend using DAO (in its latest ACEDAO version) rather than ADO when using Access or Jet databases.

  18. #138
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by VB6 Programming View Post
    Why is DAO support not planned? Is it because you think it is not used much, or is it for a technical reason (because it is an intrinsic control?)?

    We have existing VB6 apps, some use DAO some use ADO. I guess many other developers have DAO apps too.

    Microsoft now recommend using DAO (in its latest ACEDAO version) rather than ADO when using Access or Jet databases.
    Neither of both. ADO support is a must, as ADO was introduced by Microsoft for replacing DAO and RDO.

    Quoting myself:
    - I have never promised any feature which I can't accomplished. You could check public comments at Facebook page about MSCOMM32: https://www.facebook.com/radbasic/?c...c1MjM4NjAwMzM2
    DAO is not implemented as a matter of resources. For first version it will implement ADO. For further versions, a layer of compatibilty between DAO and ADO could be rethinked. Or, I was thinking it could be an stretch goal for kickstarter campaign as it will allow to contract or make a small team. And it will be more resources for implementing more features.

    Carles Royan

  19. #139
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: https://www.radbasic.dev/

    as we know, VB6 sucks in the graphic department.
    that is why we use API calls to use GDI directly and that is why I use direct2d.
    we dont have monitor sync and it takes ages to render something, and we can't load png and other formats natively.

    one thing that I think would benefit is that to replace the VB's native components with newer ones that support those formats.
    and instead of using some crappy rendering, why not direct2d? sure u need windows 7 but radbasic should be the future not be forced to be back compatible to windows xp.

    if not, I would be forced to yet again use typelibs, APIs etc to do what I need to do, radbasic will not give me much, except maybe 64bit compilation that is actually not that important as long we have 32bit mode in windows.

  20. #140
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    Well, the future is important but the past cannot be left to rot. For RADBasic and other BASICs (TB) to take over from VB6 then support for some older technologies may turn out to be absolutely essential. It isn't about making a new toy for us to play with, it is about making programs that work and many of those will be legacy commercial products used in the enterprise. They need the components we might want to abandon so add your dreams to the wishlist and the future and hopefully both can come...

    Quote Originally Posted by baka View Post
    except maybe 64bit compilation that is actually not that important as long we have 32bit mode in windows.
    I can hear that particular axe being sharpened and I am looking out for the axeman preparing to practice his swing anytime now.

  21. #141
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: https://www.radbasic.dev/

    not sure about that.
    if you have a "software" that is still used, its also your job to keep it up to date.
    so u cant expect that a new IDE will do it for you, so that your old OCX can still work.

    for me a new IDE is not about my old project, they still work under VB6. VB6 is still fully capable. VB6+32bit is still working well. except for some old component that causes issues. but is that really VB6 fault?

    a new IDE should "fix" what VB6 was supposed to do if microsoft didnt abandon it.
    compatibility for windows 7,8,10. so forms and component would be placed correctly. that is not about back-compatibility but a new feature.

    so twinbasic or rad, if they only focus on legacy, it will be 10 years before they are ready to start adding new features. whats the point to make it when VB6 can do and because of the community still can do everything except a few things. we have the codebank for that. if your old project is not working is because u need to update it. thats life. I have updated everything I have to work with windows7-10.

    64bit, right now is the less important thing. since 32bit still works.
    the only reason for me to use a new IDE would be that the IDE itself is updated so that I dont need to use API/typelibs. whats the point if I still need to do it?

  22. #142
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    Quote Originally Posted by baka View Post
    it will be 10 years before they are ready to start adding new features.
    Well, I'm not sure about that...

    His timescales are realistic and I don't think they include a 10 year hiatus. 100% compatible is his aim. I'm going to suggest that some of these new versions of VB6+ may not be suitable for you in the short term as it might take a lot to prize VB6 from your fingertips and insert something else. You sound happy enough with VB6 as it is.

    If you read the blurb on RADBasic, changes and improvements will come but not yet...

  23. #143
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post
    Yes, you can use ActiveX/OCX.
    "Using" ActiveX and "OLE-compatible-siting-support at compiler-level" are two entirely different pair of shoes.

    For example - with a C-Compiler - (in case you used one to produce the IE-Control-hosting Demo),
    you will only need a CreateWindowEx-based one-liner, to create an IE-Control on a ParentHwnd...
    Code:
    hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
                               10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);
    Quote Originally Posted by radBasicHost View Post
    There is a demo using MSIE ocx, well, it's up to you if you believe it https://www.youtube.com/watch?v=Fnw-cicpBR8
    But how can we know, which method (in your compiler) you used, to show the IE-Control?

    I have serious doubts, that you implemented full COM- and OLE-compatible siting of AX-Controls in your compiler.

    Instead there is a very high probability, that you are using something "procedural and simple, CreateWindowEx-based"
    (then using SendMessage-calls to communicate with the Control-hWnds, instead of early-bound COM-calls).

    You mentioned already, that you have developed an entirely new rtLib with your own GUI-Control-implementations.

    Why?

    If you had proper COM- and OLE-siting support in your compiler (which is needed for 100% VB6-compatibility),
    you would not need to develop your own "GUI-control-runtime-lib" - instead you could make use of existing OCXes or other COM-based Control-libs.
    (either in VB6-sourcecode, or from compiled Binaries).

    Another thing, which raises suspicion (that COM-support is entirely missing),
    is your "external SoJo-Process" you currently use - also here, you seem to prefer to communicate via
    Send- and PostMessage with the Controls hWnds (which in all likelyhood were sited via Controls.Add in a VB6-based SoJo-32Bit-Process).

    Quote Originally Posted by radBasicHost View Post
    DAO support is not planned. Only ADO.
    And that's another sentence which rings alarm-bells...

    Because if your compiler is 100% compatible (meaning, that it comes with proper COM-Class-support),
    DAO would be supported automatically! (loadable earlybound just as any other COM-lib via the referenced dll/typelib -
    since DAO ships with the System-OS, in the same way as the ADO-COM-libs and countless others)

    I'd apprecieate it, when you would answer just these two questions:
    1) Is there any COM-support in your current compiler-version, or not?
    2) Is there even a Class-Concept in your current compiler-version?
    ...(because I've never seen any hints of that in any of your Demo-Videos)

    Olaf

  24. #144
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    You know I do see something rather ironic in the way that you, Olaf, keep your code, progress and technical methods closed and tightly clasped to your chest, preventing scrutiny and the asking of the sort of questions that you always ask others. This is my main point on this response.

    It seems that the positive efforts of others inevitably end up in slanging matches where various parties try to disassemble and even denigrate the work of others without allowing the same open discussion for their own efforts. The poor developer then gets wrapped up into trying to defend his technical capabilities and spends more time arguing than getting on with his projects. Honestly, I know that as soon as any dev answers your questions you will come up with three more that are just as challenging to answer (and you will be perfectly able to defend why) but the end result is that it just drags the discussion down into a quagmire.

    Whether you mean to do it or not the result is often the same. Some chaps here react defensively and then are forced to keep their code private to avoid the inevitable slanging match that always arises. I know at least three that gave up publicising or talking about their attempts to recreate/replace VB6 just because of the lead weights that are seemingly attached to these threads, bringing the poor developer down in the process.

    My suggestion would be to phrase your technical questions in such a way that they appear as if you want clarification on how things will be achieved instead of always pointedly digging in an aggressive fashion as if you want the chap to fail.

    You know a lot can be read into your tone and if a clever chap like you hasn't realised that already and hasn't already taken steps to mollify that tone, then we can be quite sure that your tone is exactly the one that you meant to provide.

    My second point is this - I know it is useful to know the answers to certain technical questions but there are ways of asking without bringing the whole shebang down to the inevitable slanging match we always find here on these forums. Can we just not lighten it a bit and give the man some slack?

    Or conversely, open your own code to your own magnus opus to some scrutiny?

  25. #145
    Fanatic Member
    Join Date
    Feb 2015
    Posts
    1,022

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post
    DAO is not implemented as a matter of resources. For first version it will implement ADO. For further versions, a layer of compatibilty between DAO and ADO could be rethinked. Or, I was thinking it could be an stretch goal for kickstarter campaign as it will allow to contract or make a small team. And it will be more resources for implementing more features.
    I'm not sure if you aren't implementing DAO and the Data control you can claim to be "100% compatible with your Visual Basic 6 projects".

    Probably best to wait until you launch the preview/alpha version and we see what works and what doesn't.

    Quote Originally Posted by baka View Post
    not sure about that.
    if you have a "software" that is still used, its also your job to keep it up to date.
    so u cant expect that a new IDE will do it for you, so that your old OCX can still work.

    for me a new IDE is not about my old project, they still work under VB6.
    If a product advertises itself as being 100% VB6 compatible you should be able to expect that your old OCX should still work (at least as a 32 bit app). It would be good to have a bridge/shim to allow 32bit OCXs to work with 64bit apps.

    For me, existing VB6 projects need to be able to be used with any VB6 replacement, with (almost) no changes.

    I look forward to the preview/alpha release.

  26. #146
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by baka View Post
    not sure about that.
    if you have a "software" that is still used, its also your job to keep it up to date.
    so u cant expect that a new IDE will do it for you, so that your old OCX can still work.

    for me a new IDE is not about my old project, they still work under VB6. VB6 is still fully capable. VB6+32bit is still working well. except for some old component that causes issues. but is that really VB6 fault?

    a new IDE should "fix" what VB6 was supposed to do if microsoft didnt abandon it.
    compatibility for windows 7,8,10. so forms and component would be placed correctly. that is not about back-compatibility but a new feature.

    so twinbasic or rad, if they only focus on legacy, it will be 10 years before they are ready to start adding new features. whats the point to make it when VB6 can do and because of the community still can do everything except a few things. we have the codebank for that. if your old project is not working is because u need to update it. thats life. I have updated everything I have to work with windows7-10.

    64bit, right now is the less important thing. since 32bit still works.
    the only reason for me to use a new IDE would be that the IDE itself is updated so that I dont need to use API/typelibs. whats the point if I still need to do it?
    Hi Baka,

    I understand your point of view. But, for enterprise, compatibility is a must. There are prior messages about COM port (my PC didn't have any!) or DAO which it was deprecated a lot of years. There are other BASIC alternatives which have a Visual Basic dialect. Why we are still using VB6 then? It is all about compatibility. And first version is focused in it and easing the path from VB6 to RAD Basic. At frontend level (language) there won't be new features. At backend level there will be some new features as: 64-bit or Visual Styles support directly. But one key feature is that you could switch between environments VB6/RADBasic with no problems.

    Sure, if we all are speaking about to reimplement VB6 and no more, it will be very little gain. You have to see 1.0 release as a first step, for later introducing new features as: Concurrency (threads), cross platform, and more.

    And, as yereverluvinuncleber, no it won't be 10 years. I hope cycles of 1-2 years between major releases.

    Regards.

    Carles

  27. #147
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by VB6 Programming View Post
    I'm not sure if you aren't implementing DAO and the Data control you can claim to be "100% compatible with your Visual Basic 6 projects".

    Probably best to wait until you launch the preview/alpha version and we see what works and what doesn't.



    If a product advertises itself as being 100% VB6 compatible you should be able to expect that your old OCX should still work (at least as a 32 bit app). It would be good to have a bridge/shim to allow 32bit OCXs to work with 64bit apps.

    For me, existing VB6 projects need to be able to be used with any VB6 replacement, with (almost) no changes.

    I look forward to the preview/alpha release.
    Sorry, I didn't explain well in this point.

    Your OCX will work in 32 bit compilation. RAD Basic ships: IDE, compiler and new Runtime Library. This new runtime library allows:

    - A maintained runtime. VB6 runtime is in patching mode for run applications in Windows 7/8/10. But, two summers ago a Windows Update broke VB Runtime in Windows 10. And the fix rolled out some days (or weeks, don't remember) later.
    - 64 Bit support: New runtime Library is compiled into 32 and 64 bits.

    So, if you use, for example, RichTextBox from RAD Basic RTL, you could compile to 64 bit, and in future access to newer features. If you use RICHTX32.OCX from VB6, you only compiles to 32 bit and use legacy code from 90's.

    When I say it is not implemented/support, I mean in new Runtime Library, so you loose 64-bit support. About DAO implementation, it relies in a lot of VBA internal, so I have to test deeply if it will run without issues.

    About allow 32bit OCX work with 64bit apps, yes, it's SOJO library: https://www.youtube.com/watch?v=YbcShyhze5g

    Regards.

    Carles.

  28. #148
    Fanatic Member
    Join Date
    Jan 2015
    Posts
    596

    Re: https://www.radbasic.dev/

    Carles, have you seen my MP?

  29. #149
    PowerPoster wqweto's Avatar
    Join Date
    May 2011
    Location
    Sofia, Bulgaria
    Posts
    5,120

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    1) Is there any COM-support in your current compiler-version, or not?
    His machine currently does not have any COM ports! And next time instead of being passive-agressive just use "OLE-support" or "ActiveX-support" instead, not to scare the sh*t out of them poor developers :-))

    cheers,
    </wqw>

  30. #150
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    "Using" ActiveX and "OLE-compatible-siting-support at compiler-level" are two entirely different pair of shoes.

    For example - with a C-Compiler - (in case you used one to produce the IE-Control-hosting Demo),
    you will only need a CreateWindowEx-based one-liner, to create an IE-Control on a ParentHwnd...
    Code:
    hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
                               10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);

    But how can we know, which method (in your compiler) you used, to show the IE-Control?

    I have serious doubts, that you implemented full COM- and OLE-compatible siting of AX-Controls in your compiler.

    Instead there is a very high probability, that you are using something "procedural and simple, CreateWindowEx-based"
    (then using SendMessage-calls to communicate with the Control-hWnds, instead of early-bound COM-calls).

    You mentioned already, that you have developed an entirely new rtLib with your own GUI-Control-implementations.

    Why?

    If you had proper COM- and OLE-siting support in your compiler (which is needed for 100% VB6-compatibility),
    you would not need to develop your own "GUI-control-runtime-lib" - instead you could make use of existing OCXes or other COM-based Control-libs.
    (either in VB6-sourcecode, or from compiled Binaries).

    Another thing, which raises suspicion (that COM-support is entirely missing),
    is your "external SoJo-Process" you currently use - also here, you seem to prefer to communicate via
    Send- and PostMessage with the Controls hWnds (which in all likelyhood were sited via Controls.Add in a VB6-based SoJo-32Bit-Process).


    And that's another sentence which rings alarm-bells...

    Because if your compiler is 100% compatible (meaning, that it comes with proper COM-Class-support),
    DAO would be supported automatically! (loadable earlybound just as any other COM-lib via the referenced dll/typelib -
    since DAO ships with the System-OS, in the same way as the ADO-COM-libs and countless others)

    I'd apprecieate it, when you would answer just these two questions:
    1) Is there any COM-support in your current compiler-version, or not?
    2) Is there even a Class-Concept in your current compiler-version?
    ...(because I've never seen any hints of that in any of your Demo-Videos)

    Olaf
    Hi Schmidt/Olaf,

    As yereverluvinuncleber say, your repetitive attack to my persona didn't contribute in this thread. So, it will be the last message about this personal attacks. I will only answer technical questions from you and others. You seems to have a pretty good technical knowledge based on your posts and previous works. But your questions are tendentious from a technical view, I don't know if you lack knowledge on compilers fields or you are doing it on purpose. You are doubting about my knowledge of COM for about two years. I think 2 years are enough time for learning and implement something...

    End of rant.

    About your technical doubts:

    • I develop a new RT Lib with new controls because:
      • Using old and unmaintained OCX don't resolve the problem. You only have a new IDE, but no 64-bit support, no new features, no new Windows 10 controls, etc (You could review Microsoft Project Reunion: https://docs.microsoft.com/en-us/win...oject-reunion/)
      • We have different approach here: cross platform. The new components are raw libraries, not COM objects. It could be exposed to COM if you want. RAD Basic can use COM and can generate COM (new OCX), but the runtime are pure C with no COM. Why? for cross platform support in further versions. Implementing cross platform COM runtime is a suicide. COM is based on idea of CORBA. And GNOME Bonobo and Mozilla XPCOM are similar COM implementations that they are deprecated. Also, COM are very tied to Windows.
    • About your doubts in COM compiler support: Yes, it has little to none support, as in VB6 compiler (c2.exe). It is a crazy idea implement COM support in compiler as it is implement printf in compiler. COM support in RAD Basic is in RBCOMLIB library, as in VB6 is in stdole. This library starts OLE SERVER. And there are a separated exe for implementation generator. The implementation is in plain C, as the while runtime, while COM/OLE are designed for C++, so it is very interesting supplying the virtual table in _IOleClientSiteEx structure.
    • About your "suspicious" in SOJO: There is the only way to do it. Adobe Flash component in browsers works equal. You CAN NOT mix 32-bit and 64-bit addressees in same process. The only way is run two processes and passing messages between them.
    • About DAO: My fault: I explained before. You can use this and other OCX components. But you will have to compile to 32-bit and you will continue with no support. DAO is an specially control as it is very coupled to VBA runtime. So, the problem won't be OCX, but the new environment.
    • About class concept: Sure it will be. In fact, The C runtime is implemented in OOP. You worked with GTK and cairo, so you know how it works. Right now, Module classes didn't compile yet, they are only loaded in IDE. The project is in pre-alpha. If all was implemented already there won't be a kickstarter campaign and the GA version will be published already.


    Yes, I keep saying RAD Basic is 100% compatible with VB6. But this does not mean that there aren't any bugs or behavior problems. They key difference is RAD Basic is focused in compatibility, full compatibility, so any different of behaviors is treated as a bug, meanwhile others BASIC implementations want to be as close as possible to VB6, but if there are differences they don't worry about them.

    Carles.
    Last edited by radBasicHost; Mar 31st, 2021 at 09:47 AM.

  31. #151
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by wqweto View Post
    His machine currently does not have any COM ports! And next time instead of being passive-agressive just use "OLE-support" or "ActiveX-support" instead, not to scare the sh*t out of them poor developers :-))

    cheers,
    </wqw>
    LOL

    Thanks for a little of humour

  32. #152
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Thierry69 View Post
    Carles, have you seen my MP?
    Sorry, I haven't seen. I've just answered right now.

  33. #153
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by wqweto View Post
    His machine currently does not have any COM ports!
    And next time instead of being passive-agressive just use "OLE-support" or "ActiveX-support" instead,
    not to scare the sh*t out of them poor developers :-))
    I take it, that your *entire* post was meant ironically, because -
    just went over my prior posting #143, looking for "passive aggressiveness" and didn't find anything like that.

    And yes, from Carles follow-up postings - it seems he doesn't even understand the term "COM" in the right context.

    @Carles
    What I was talking about in #143 was COM/OLE (not the COM-ports for "serial devices").

    Also (since you used this repeatedly in recent replies) -
    when you "plan to implement ADO" (but not DAO), this is "just plain wrong on so many levels".

    What you need to implement is not "ADO" - but "proper COM/OLE-support".

    As soon as you managed that at compiler-level, then there's "nothing further to implement"
    (with regards to specific COM-libraries - as e.g. ADO-COM-libs or DAO-COM-libs, or whatever other COM-lib).

    For example - the 64Bit-interpreter you find in VBScript, does have "COM/OLE-support"
    (and what it does not have, is "specific ADO- or DAO-support").

    Here is the entire content for a little *.vbs-File, which shows that "64Bit-DAO-support" comes automatically,
    when the language (the compiler or interpreter) has support for COM/OLE Class-Instancing and -Method-calling:
    Code:
    Dim  DBE 
    Set  DBE = CreateObject("DAO.DBEngine.120")
    With DBE.OpenDatabase("c:\temp\nwind.mdb")
      MsgBox .OpenRecordset("Select Count(*) From Orders")(0)
    End With
    The above shows the LateBound-version of COM/OLE-support (available via IDispatch) -
    whereas in your "100% compatible compiler" you'd have not only to support that LateBound-mode,
    but also "EarlyBound-mode" ...
    (meaning directly connecting to a given COM-Object-Instances VTable, using its TypeLib-Interface-derived method-signatures for direct COM-ABI-calls).

    HTH

    Olaf

  34. #154
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by yereverluvinuncleber View Post
    ... you, Olaf, keep your code, progress and technical methods closed and tightly clasped to your chest, ...
    That's wrong...

    First of all - I'm one of the devs, who contributed the most to the community (source-code-wise).
    And as for the RC-libs I also provide - these are at least available (for everyones "own scrutiny") as free binaries.

    That alone is already totally different from what was made available from the RadBasic-author
    (where all we currently have is "promises" and a few videos).

    Quote Originally Posted by yereverluvinuncleber View Post
    ...Can we just not lighten it a bit and give the man some slack?
    Or conversely, open your own code to your own magnus opus to some scrutiny?
    As already said, the "magnus opus" can be (or better, already is) "scrutinized and used" by a lot of devs in their VB6 projects for about 15 years now.

    And as for "some slack"... I did not claim that the author did "complete mockups"
    (I'm fairly certain, that the outputs were produced by a working compiler or at least "translator" underneath)

    All I did, was questioning the "current capabilities of that compiler" (because that's related to the authors "timeline-claims"):
    - I made a few assumptions, how certain things were probably implemented
    .. (note, that the Author did not deny any of those - so they were probably "right on the mark")
    - and I asked technical questions - for example about Class- and COM-support at compiler-level
    .. (Carles tried to answer these in the meantime - and my translation of what he wrote is: "currently not"

    And if the last point is true (no Class- or COM-support in the compiler currently) -
    then the "deadline until the first test-version-binaries will be delivered" is (IMO) totally unrealistic.

    Even with a 2 or 3-man team (in case the fund-raising is successful - and "decent help is brought on board"),
    proper "100% compatible" COM- and VB6-Class-support will not be seen "for another year at least".

    If you don't believe me, then feel free to ask wqweto or the trick in a PM, whether what I just wrote is correct or not.

    And yes, "being questioned this way" might have hurt Carles on a personal level -
    but he's the one who (so far) is "an unknown player in the VB6-community" -
    and he's asking for money *before* "providing anything we can lay our hands on"

    I seriously don't get why everybody is painting me "the devil incarnate" here in this thread,
    when I try for "a bit more clarification, before spending my money"...
    such questions are entirely normal - and should be anticipated by Carles.


    Olaf

  35. #155
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    I seriously don't get why everybody is painting me "the devil incarnate" here in this thread
    So, are you telling me that my mental image of you is wrong? I had always imagined you WERE the devil.

    <insert mental picture here of devil coding in super-speed using VB6, the music of "the devil came down to Georgia" playing in the background>

    Olaf, I wholeheartedly apologise if I have painted you with an undeserved brush. The trouble is with these VB6+ threads they do seem to become downbeat and highly negative within a mere heartbeat or two. Your critical tone can seem acerbic at times. Once again, apologies if I ascribed a tone to your words that was not meant. I find a smiley or two always helps raise the tone.

    Quote Originally Posted by Schmidt View Post
    when I try for "a bit more clarification, before spending my money"...
    I think your approach in this respect is correct and hopefully RADBasicHost can at least show you his direction, his intentions and his capability.

    I just wanted to lighten this thread before it descended in that all too typical downward spiral. I can tell from RBHost's response that he has probably felt the same downward pressure applied.

  36. #156
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post
    Hi Schmidt/Olaf,

    As yereverluvinuncleber say, your repetitive attack to my persona didn't contribute in this thread. So, it will be the last message about this personal attacks. I will only answer technical questions from you and others. You seems to have a pretty good technical knowledge based on your posts and previous works. But your questions are tendentious from a technical view, I don't know if you lack knowledge on compilers fields or you are doing it on purpose. You are doubting about my knowledge of COM for about two years. I think 2 years are enough time for learning and implement something...
    Hi radBasicHost,

    First of all, congratulations on your progress. I don't think Olaf is attacking you at all, he is just discussing technical issues. And the questions he raised are very in-depth, and bystanders as well as you can learn a lot from them.

    Please relax. This is a technical forum, and discussing technical questions is the greatest value and greatest charm of this forum.

    Rooting for you.

    Edit:
    Also, IMO, even if RADBasic does not support COM, it's still valuable and has practical application scenarios.
    Last edited by SearchingDataOnly; Mar 31st, 2021 at 01:53 PM.

  37. #157
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by SearchingDataOnly View Post
    Hi radBasicHost,

    First of all, congratulations on your progress. I don't think Olaf is attacking you at all, he is just discussing technical issues. And the questions he raised are very in-depth, and bystanders as well as you can learn a lot from them.

    Please relax. This is a technical forum, and discussing technical questions is the greatest value and greatest charm of this forum.

    Rooting for you.

    Edit:
    Also, IMO, even if RADBasic does not support COM, it's still valuable and has practical application scenarios.
    Thanks for your congrats.

    Sure, I like discuss any technical issues. I discussed a lot in public and in private with members of this forum. I'm very relaxed about it.

    But, I want to discuss about technical issues of the project. Not about my knowledge of COM, not about defending if it is a fake or not, not insinuating I don't differentiate between COM ports and COM components. This is not technical discussion. This is trolling. And it is said: Don't feed the troll.

    If you find me in twitter, you will see there people from Microsoft following me (they have the blue check). I think they would have found out if all the project was a big fake, as it is suggested.

    Carles.

  38. #158
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    @Carles
    What I was talking about in #143 was COM/OLE (not the COM-ports for "serial devices").
    Thanks Olaf.

    I'm not native English, so I explained very bad, as I see.

    The only reference of COM-ports was in #134, about implementing old features. It was a reference to an example of legacy/old features which people are demanding.

    Thanks for joking/distorting.

    Code:
    .. (note, that the Author did not deny any of those - so they were probably "right on the mark")
    Sorry, for not being enough clear.

    Your suggestion:
    Code:
    hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
                               10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);
    Is completely FALSE.

    The code is something like:

    Code:
    if (!(ptr = (char *)GlobalAlloc(GMEM_FIXED, sizeof(_IOleClientSiteEx) + sizeof(IOleObject *))))
    		return(-1);
    
    _iOleClientSiteEx = (_IOleClientSiteEx *)(ptr + sizeof(IOleObject *));
    _iOleClientSiteEx->client.lpVtbl = &MyIOleClientSiteTable;
    
    _iOleClientSiteEx->inplace.inplace.lpVtbl = &MyIOleInPlaceSiteTable;
    
    _iOleClientSiteEx->inplace.frame.frame.lpVtbl = &MyIOleInPlaceFrameTable;
    
    _iOleClientSiteEx->inplace.frame.window = hwnd;
    
    _iOleClientSiteEx->ui.ui.lpVtbl = &MyIDocHostUIHandlerTable;
    pClassFactory = 0;
    if (!CoGetClassObject(&CLSID_WebBrowser, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, NULL, &IID_IClassFactory, (void **)&pClassFactory) && pClassFactory)
    {
        if (!pClassFactory->lpVtbl->CreateInstance(pClassFactory, 0, &IID_IOleObject, &browserObject))
        {
            pClassFactory->lpVtbl->Release(pClassFactory);
            *((IOleObject **)ptr) = browserObject;
            SetWindowLong(hwnd, GWLP_USERDATA, (LONG)ptr);
            ...............
    As I'm said, the compiler has nothing related to COM/OLE. it is all implemented in RBCOMLIB library, which is linked in compile time. This library wrap the COM complexity and compiler make calls to this library. Same as C calling printf, same as VB6 COM implementation, which is wrapped in stdole library. So generated code is simpler as glue code goes into library.

    Code:
    What you need to implement is not "ADO" - but "proper COM/OLE-support".
    You are completely wrong. Doing this: how will go multi-platform, 64-bit support? Who will maintain ADO OCX? YOU HAVE TO REIMPLEMENT ALL THE STACK. Runtime Libary has to be reimplemented. If not, in a few years you could have a shinny new compile who does nothing because any legacy OCX works in new Windows.

    Olaf: I prefer to discuss about the project, not about personal issues.

    Carles

  39. #159
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post
    I'm not native English, so I explained very bad, as I see.
    Most of the participants in this thread aren't native speakers either (myself included).
    Guess, we all have to try our best in this regard, to avoid further misunderstandings...

    Quote Originally Posted by radBasicHost View Post
    Your suggestion:
    Code:
    hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
                               10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);
    Is completely FALSE.
    Ok, no problem - your alternative (longer) code-snippet is apparently using Ole-siting interfaces -
    but my problem with that snippet is the part I've marked blue below:

    if (!CoGetClassObject(&CLSID_WebBrowser, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, ...

    This is (for me at least, not sure how others see it) - a hint, that the OLE-siting in your RBCOMLIB is
    currently used for the IE-Control exclusively.

    And that in turn suggests, that you were not really aware that this IE-specific instancing-code-block already contained
    all the needed pieces for generic OLE-siting (which would then work with any Control-ClassID from any OCX-lib).

    Quote Originally Posted by radBasicHost View Post
    As I'm said, the compiler has nothing related to COM/OLE.
    I'm sorry, but in that case your proposed "100% compatibility" is a lie,
    because - all the VB6-CodeSnippets:
    - which rely on member- and pointer-positions behind the OLE-Variant-struct will not work
    - which rely on "pointer-magic" behind OLE-SafeArray-structs will not work
    - which rely on the IUnknown-interface behind Class-instances will not work
    - which rely on the IDispatch-interface (As Object) behind Classes (for LateBound-support) will not work (CallByName?)
    - which rely on the IEnumVariant-interface when implementing For-Each support will not work
    - which rely on Class method-signatures, compatible with the COM-ABI (when using pointerbased method-calls) will not work
    - Event-related Code which relies on IConnectionPointContainer & Co (to exist underneath) will not work
    - VB6-Code which relies on, that Class-interface-casting is performed via IUnknow.QueryInterface will not work

    Furthermore, a "100% compatible compiler" has to be able to produce "native Dlls with Classes in it".
    And I can assure you, that (e.g. the VBA-folks) will expect these Class-Dlls to be "100% usable"
    also in "other COM-capable host-processes" (like MS-Office).

    Quote Originally Posted by radBasicHost View Post
    Who will maintain ADO OCX?
    Not sure, if this is "just another language-barrier-issue" - but JFTR:
    The term OCX implies "Visual Controls".

    But when we mentioned ADO or DAO further above, we meant the "non-visual DB-access-layer-classes",
    which are usually associated with these terms (including all the Sub-dependencies further down, like OleDB- or ODBC-drivers).

    It seems you are much too focused on "visual Controls" currently (which is an important part of VB6, sure - but nowhere near "all of what it does and needs").

    See, my whole listing of the 8 points above (describing the things which would break, when you don't implement COM/OLE at compiler-level),
    are the foundation of "non-visual VB6-code" which needs to work first (to remain true to your 100% goal), before you can even think about implementing a GUI on top of that.

    Olaf

  40. #160
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    Most of the participants in this thread aren't native speakers either (myself included).
    Guess, we all have to try our best in this regard, to avoid further misunderstandings...



    Ok, no problem - your alternative (longer) code-snippet is apparently using Ole-siting interfaces -
    but my problem with that snippet is the part I've marked blue below:

    if (!CoGetClassObject(&CLSID_WebBrowser, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, ...

    This is (for me at least, not sure how others see it) - a hint, that the OLE-siting in your RBCOMLIB is
    currently used for the IE-Control exclusively.

    And that in turn suggests, that you were not really aware that this IE-specific instancing-code-block already contained
    all the needed pieces for generic OLE-siting (which would then work with any Control-ClassID from any OCX-lib).



    I'm sorry, but in that case your proposed "100% compatibility" is a lie,
    because - all the VB6-CodeSnippets:
    - which rely on member- and pointer-positions behind the OLE-Variant-struct will not work
    - which rely on "pointer-magic" behind OLE-SafeArray-structs will not work
    - which rely on the IUnknown-interface behind Class-instances will not work
    - which rely on the IDispatch-interface (As Object) behind Classes (for LateBound-support) will not work (CallByName?)
    - which rely on the IEnumVariant-interface when implementing For-Each support will not work
    - which rely on Class method-signatures, compatible with the COM-ABI (when using pointerbased method-calls) will not work
    - Event-related Code which relies on IConnectionPointContainer & Co (to exist underneath) will not work
    - VB6-Code which relies on, that Class-interface-casting is performed via IUnknow.QueryInterface will not work

    Furthermore, a "100% compatible compiler" has to be able to produce "native Dlls with Classes in it".
    And I can assure you, that (e.g. the VBA-folks) will expect these Class-Dlls to be "100% usable"
    also in "other COM-capable host-processes" (like MS-Office).


    Not sure, if this is "just another language-barrier-issue" - but JFTR:
    The term OCX implies "Visual Controls".

    But when we mentioned ADO or DAO further above, we meant the "non-visual DB-access-layer-classes",
    which are usually associated with these terms (including all the Sub-dependencies further down, like OleDB- or ODBC-drivers).

    It seems you are much too focused on "visual Controls" currently (which is an important part of VB6, sure - but nowhere near "all of what it does and needs").

    See, my whole listing of the 8 points above (describing the things which would break, when you don't implement COM/OLE at compiler-level),
    are the foundation of "non-visual VB6-code" which needs to work first (to remain true to your 100% goal), before you can even think about implementing a GUI on top of that.

    Olaf
    You could continuing saying I'm lying, so this is my last post, as this isn't a technical discusion.

    Your assumptions, Olaf, are very, very wrong.
    Code:
    See, my whole listing of the 8 points above (describing the things which would break, when you don't implement COM/OLE at compiler-level),
    It is a stupid idea making it in compiler level. See, Visual Basic 6 din't make it at compiler level neither. Most of us working in compiler field had read (or be recommended to read) the Dragon Book. The authors just received ACM Turing Award, check: https://news.stanford.edu/2021/03/31...-turing-award/. Give it a try.

    Carles

Page 4 of 7 FirstFirst 1234567 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width