Saying that Visual Basic (in particular) isn't low-level isn't true. You can turn off all its "let me do it for you" optimizations and compile down pretty close to system code.
Please excuse my apparent bitterness, but I often find myself defending Visual Basic due to the fact that I know what it can do where most people, particularly those who don't like it, have no idea. Those most are justified, however, because a majority of VB developers are as good at programming as a finger paintist is at architecture.
__________
The syntax of any given language has its pros and cons, but no one is more capable than another, as a rule of thumb. I've written emulators in VB, where most would do so in C. If you want cross-platform, though, Java is definitely the way to go.
Pretty much, C++, Java or Visual Basic (or equivelant) are your primary choices. C++ will get a lot of support for you, as most developers use it. Java will give you quite a bit of flexibility because of the way it's designed. Visual Basic (or the directly-compatible REALBasic which is actually a better and cross-platform buy) is incredibly easy to use, but learning on it usually won't give you the know-how for big, fancy things like... pointers. (-: