Assuming you're already familiar with how Microsoft Visual C++ break down in disassembly, you can look at http://www.dreamincode.net/forums/topic/17436-disassembling-visual-basic-applications/ to see how visual basic is structured. The author also compares visual basic to C/C++ a few times.
Either way, the differences that I may list depend on whether the visual basic binary is compiled to p-code (pseudo code) or native. P-code compilation results in an executable that is interpreted at runtime by an interpreter. This means when you throw a p-code compiled visual basic executable in a disassembler, you'll see some sort of dispatch table translating p-code instructions into native code. In contrast, native code compiled visual basic binaries do not suffer the performance penalty of re-interpreting each instruction.
One obvious difference can be found if you throw a visual basic compiled binary into IDA. If it's a VB binary, normally you'll find a reference to msvbm60.dll. In contrast, Visual C++ executable tend to use msvcr**.dll, which is the C run time library.
Note: Registration is required to post to the forums.