Quote Originally Posted by PlausiblyDamp View Post
I think yourself and Niya are approaching this from different viewpoints.... If you are used to VB6 then having to use APIs to overcome a lot of the limitations is completely normal, plus the language makes it hard to pass things to the APIs as well. CopyMemory, GetMem, PutMem, etc. are required to do a lot of things. I suspect Niya is approaching this from a C# / VB.Net point of view - the language provides easier ways of calling APIs that doesn't require your code to be full of pointers (or in the case of https://learn.microsoft.com/en-us/do...rce-generation this low level code is generated for you).

I think if you are constantly having to use raw memory access and pointers in a a high level language like Basic then something is wrong - either the language is not sufficiently high level enough, or you are using the wrong language for the job. I am willing to admit there will be occasions raw memory access is needed, but these shouldn't be the common case in a high level language. Ideally the environment should take care of as much of this as possible.
That's the idea behind turning VB into .NET.

The bottom line is tB is not meant to be another .NET. There's not going to be a framework wrapping the entire Win32 API in safe pointer using classes or wholesale replacing it. Fans of the .NET approach can lament that all they want, but it's simply not a good argument to say "Well, if tB was a .NET clone, low level feature x wouldn't be needed, therefore it's not needed." which seems to be what you're getting at here.