Decompiler for Visual Basic 6 program? [duplicate] - vb6

This question already has answers here:
Is there a Visual Basic 6 decompiler? [closed]
(6 answers)
Closed 3 years ago.
In the FAQ of the Boomerang decompiler (which currently only decompiles to C-code) they make a brief mention that Visual Basic exes happen to include a lot of metadata, so a Visual Basic decompiler might be able to produce better source code for Visual Basic programs than what Boomerang can give you. Since the program I'm trying to decompile might actually be a VB 6 program, do you know of any decompilers for VB6 exes?
(Don't worry this isn't for nefarious purposes. I just have to create a data file this program parses, and getting a sense of the strategy it uses to parse the file will help get the file format right.)

You might want to try VBReFormer

VB Decompiler is another tool. And works fine too!)

Related

Is there anywhere I can download VB6 these days? [duplicate]

This question already has answers here:
Where can I get a VB6 IDE [duplicate]
(2 answers)
Closed 7 years ago.
I have a couple of decades of experience with VB6. I could share this knowledge with those people who are still asking questions about it: but I cannot test my code or confirm my thinking without a copy of the thing. I know it's very, very obsolete: but I lost my job last year due to disability, so I am coding at home.
I have the latest c#, obviously, in the form of the Express edition of the latest Visual Studio. But is VB6 available from any legitimate sources?
VB6 is available to MSDN subscribers
You can still buy original sealed copies on ebay. But the prices are still surprisingly high, probably due to the rarity and lack of MS support.
Have you considered switching to VBA instead? Modern MS Office versions have this installed as standard (I think) and according to wikipedia (https://en.wikipedia.org/wiki/Visual_Basic_for_Applications): "Microsoft has clearly stated that they have no plans to remove VBA from the Windows version of Office."
VBA is pretty close to VB6 apart from being able to compile it. But for syntax and general programming help I think it's still valid for testing out code samples and so forth.
Another thing you could try is to approach any schools, colleges or small businesses in your area. All three of these kinds of establishments are likely to have reasons to own legitimate copies of VB6 an have probably long since stopped using them but they may still be sat on a shelf gathering dust.
Schools and colleges love to sell off old assets because it keeps the accountants happy and frees up some forgotten cash to buy books and chalk with :). Perhaps you could offer to buy them at a low price. I'm sure they'll consider it.

How to start programming in Windows? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I've made simple programs in C and C++ with simple compilers (learned it in university; I'm Statistics student). Also I'm amateur PHP programer.
Now I want to start programming for Windows.
apps with user interface
apps without user interface
My aim is just to see how it is done. And I might make a basic app that interacts with a database which is in a web server.
Where should I start? Windows Visual Studio? .NET? What should I know?
If you actually want to learn the underlying API then you should start off without one of the frameworks.
Learn it the way we did it all those years ago with Charles Petzold's book, Programming Windows. A really good foundation of knowledge of how windows and messages work will serve you well.
In the longer term, a good framework, e.g. WinForms, Qt, VCL etc. will increase productivity. But if you start with one of them, then you are in danger of not knowing the difference between sent and queued messages, not knowing the difference between an HWND, an HDC and a HANDLE, and so on.
A good framework, is great, but you'll get more out of it if you understand what's underneath it.
See this question:
C# GUI programming for beginners: Where to start?
Especially this answer there.
I think you should start with Windows Form, WPF is the new thing for Windows Dev and its getting all the lime light, but I would really not recommend starting off with it.
Get Visual Studio 2010 Express
See this MSDN page on Windows Forms
Programming Windows Forms by Charles Petzold is nice book (Charles is very cool) , windows forms hasn't changed all too much since Visual 2005, you should learn C# 4, the latest language.
Visual C# 2010 Step by Step is a good book to get a gist of the .NET world and all your options (including WPF)
See these SO questions:
Beginners book for .NET and C#?
https://stackoverflow.com/questions/4807574/best-c-programing-books-for-absolute-beginner-or-someone-just-starting-with-net
https://stackoverflow.com/questions/52926/beginning-c
Hope that helps.
Update
Incase you were thinking of going with C or C++ for windows development, is it not easy. I've done some Win32 API and believe me you'll be writing seriously long/complicated programs for even simple things
You have two MS options, you can just use the C or C++ language and call the Win32 API functions.
This book is the Bible for that.
The other MS option is using MFC, people have some rather strong (bad) views about MFC. I haven't done much of it myself so can't say too much.
See : https://stackoverflow.com/questions/557114/stick-with-mfc-or-go-to-net
There are of course tons of non-MS options, which again I wouldn't recommend.
See : Native Windows Application Development Options
Bottom line, in my opinion, C# is a very well done language, you will get TONs of support here, Visual Studio is one of the best tools around, and you will have fun learning C#/.NET, and the biggest advantage is you can use your C# knowledge to write even Web Apps, Cloud and Mobile apps and lots more.
I'm not sure why people don't use cross-platform GUI toolkits more often. I tend to write my GUI in Java, and transfer control over to C++ for the actual program logic. If you know about the MVC architectural pattern, you can use Java to implement the view and controller, and C++ to implement the view. If the program is simple and performance isn't critical, then I often code everything directly in Java. I've listed a few pros of cons of using Java for coding UI instead to other languages below.
Pros
Java already has a large library full of useful utilities, and is a good starting point from which one may learn other languages. There's many well-tested Swing components that are ready to use, and tutorials online that give you good starting points for many common use cases.
Check out the JogAmp website, and try out their demos. I prefer using C/C++ to do the rendering and Java only for the user-interface, but if performance is not critical, the JogAmp APIs a lot of flexibility in terms of controlling which subset of OpenGL you would like to use.
Java has extensive support for databases and servlets - check out the JDBC API.
Java is open-source, and does not restrict you to using a particular IDE (or operating system!).
Java comes with a builtin documentation generator called Javadoc, and it works really well. In fact, documentation for the JDK is generated using it.
Cons
Java is an interpreted language, so performance will typically be worse than that of other compiled languages.
Java forces you to frame your entire program logic using objected-oriented principles, even when they aren't a good fit for your particular use case (e.g. simple, one-off experiments). Sometimes your code can end up being much more verbose than it needs to be in order to accomplish a particular task.
Edit: There are plenty of resources for beginners, such as this one.
I'm going to go out on a limb and recommend C# using Visual Studio 2010 C# Express. It keeps you familiar with the C/C++ style your probably familiar with.
There are various sample codes available for download. I found them very helpful when I was starting to learn to program for windows phone.
Visual Studio works great for C#. You should probably consider creating an account with microsoft whether via outlook.com if you plan on publishing what you develop.
If you want to develop for windows 8, I would advise that you install windows 8 and develop using that.
I think you can start with C#.net and then ASP.net

Documenting Visual Basic 6.0 code [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I have just recently been asked to document 10 years worth of VB6 development done by one person. It's been some time since I looked at VB6 code myself, so I'm basically wondering if anyone has any tips for how best to go about it.
Is there any good software, free or not, which would do something similar to javadoc out there for VB6, that could be helpful?
Or just if anyone have any suggestion for tools / methods on how to do this. Any tip would be greatly appreciated.
You can try VBDox, which is a free VB6 source code documentation generator.
You may find my add-in, Atomineer Pro Documentation helpful. It can generate and update JavaDoc, Qt, Doxygen and Xml-Documentation comments in source code (Visual Basic, C#, C++/CLI, C++, C, Java, unrealscript), and you have a lot of control over the format it produces.
(edit: please note that this addin only works in Visual Studio versions from 2005 onwards, so you cannot use it in VB6, only to document old VB6 code using a newer version of Visual Studio. Once documented however, it can still of course be reloaded and compiled in VB6)
(You could say it generates the "boilerplate" documentation for you, but it generates a lot more than just a basic boilerplate skeleton - it fills in as much detail as possible to minimise the amount of additional documentation you need to write)
So it doesn't create external documentation from the comments (like JavaDoc), it creates the comments themselves - so you would still need another tool to generate the external documentation. However, AtomineerUtils would save a lot of time if you have to generate new documentation comments for existing (undocumented) code, or if you already have the code commented/documented in a Javadoc style, AtomineerUtils can process the documentation comments to convert them to Doxygen or XML Documentation formats, which may help you to gain compatibility with other tools (Sandcastle, etc) that can build external documentation for you.
To generate the external documentation from source-code comments, Doxygen is a leading (and free) external-documentation generation tool that can build documentation from JavaDoc, Qt, Doxygen or Dcoumentation-XML format documentation-comments, and is well worth trying out.
I used to code in VB6 a loooong time ago, and I never encountered any decent tools that helped with documentation in the Javadoc sense.
I would approach this from the angle of what needs to be documented: is it for developers to understand the API or is it for a user to work with the application? Assuming the former, then what is the bare minimum that you can get away with such that a developer can follow what is going on? You may be able to avoid documenting every method, and just provide a general hand waving use case based approach that could be separate from the code entirely and be based on your explorations. A few good diagrams goes a long way to transferring understanding.
If it is for the user to work the application, then you're into the realms of the help compiler. You might be lucky and find one of this lot is still available: http://help-compiler.qarchive.org/
Alternatively, if it must be the equivalent of Javadocs or you don't get paid, then you may want to consider writing a tool to scan over the source code and do a large portion of the boilerplate parameter filling for you. A tool like Unix AWK can really help here.
Our VBdocman does exactly what you need. It uses javaDoc comments and it can generate several output formats.

Is Visual Basic 6 still widely used? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Are there still enough VB6 shops to make learning the language worthwhile?
I work for a fortune 25 company and we have a few legacy apps there were written in VB6. However all new development (in the Windows world) is strictly .NET. I would suggest learning VB.NET if you're interested in learning VB.
Computing languages don't die easily, and there are always niche markets where those skills are needed. Languages like Smalltalk, Lisp, COBOL, etc. have there loyal followers and clients that need those abilities. There will probably be some need for VB6 for a while yet.
The chief difference between VB6 and the other languages I mentioned is that the newer version of VB (VB.Net) has been declared by Microsoft to replace VB6. That tells me that VB6 will have a shrinking market as newer versions of Windows makes it near impossible to have VB6 apps that look like current modern applications.
My advice is: if you have a current need for VB6, like maintaining a legacy application, by all means learn it. The more useful you are to a company, the longer they'll keep you. If you don't have a current need for VB6 then learn the newer version of the technology. In the Microsoft world, the .NET CLR based languages are the current vision of the future. You'll also have more success finding help for problems you're facing day to day.
I do not think it is worth to learn VB6.
I work for company where main product is written in VB6 and know one another company where main product is written in VB6 too.
In both cases:
All new products/development is done in .NET (mainly VB.NET to keep syntax similar).
None of developers know VB6 when joined company.
In other words:
VB6 is probably still widely used, but companies migrate to VB.NET. Moreover VB6 is so easy to learn that you can start using it really fast with no previous experience.
I also work an Fortune 25 company with a world-wide presence and many legacy VB6 apps are still widely used through the company. Myself, I am a .NET developer and only learn as much VB6 as I need to fix a production issue or to convert something to .NET (typically C#). So no, don't invest time in learning it unless you must on the job.
I don't use vb too often - I know a lot of larger businesses (Insurance, IT you name it) who do use VB functions so managers can input data into their DB's through some kind of 'Excel' sheet.
Learning any language is worthwhile! VB is easy to understand and M$ has many libraries that are easy to use (i.e. look at connecting to Databases/creating Forms... if you're interested in what real world applications are built on it).
I've used it once for the SOAP api (very easy), and some other applications. I thought it was nice enough.
There are still companies using VB6. Where I'm active for example. But we're migrating to .NET. (the sooner the better in my opinion)
So, as mentioned by aioobe, why would you want to learn VB6? I'd say it's a waste of time and I would spend my time in, for example, VB.NET.
Unless you have a really good argument for VB6 ofcourse.
I wouldnt waste my time learning VB6. I worked with it 10 years ago and I'm still thankful everytime I look at my CV that I had the opportunity to start working in C#.NET. VB6 felt like a mickey mouse language.
You might do a search on indeed.com for "VB6" and draw your own conclusions. I find about 900 jobs there as opposed to 112,000 jobs on a search for ".net".
Google
VB6 - About 5,080,000 Results
Visual Basic 6 - About 33,700,000
Results
VB.NET - About 35,200,000 Results
Visual Basic .NET - About 20,800,000
Results
StackOverFlow
vb6 - 1920
VB6 applications are probably still used quite a lot but I believe for new development over the years VB6 has been chosen less and less as a primary platform to develop an application with people opting for .NET alternatives.
In terms of learning it, I would only do this is you need to work with old VB6 applications that will not be upgraded to .NET, or if you are upgrading VB6 applications to .NET then by all means learn it but dont waste to much time on it.
I would hazard an educated guess, based on my own experience, that there are many more programmers writing new COBOL programs than new VB6 programs. VB6 is ten years replaced and, as far as I can tell, no longer supported in any way by Microsoft.
There are still products around that are written in it (I have two myself) but Microsoft have meant to have said that Windows 8 will not work with VB6 programs, also Visual Studio 6 (required to build VB6 projects) does not easily run on Vista and Win7.
VBA is very similar in syntax and it looks like this will be supported for the next few years at least.
My advice: learn VBA if you need it, but only learn VB6 if you have a maintenance project that requires it. If you really want to learn BASIC then go for VB.NET. It is difficult to suggest other alternatives (there are lots!) unless we know about what you want to learn and why. Eg. If you wanted to learn about OOP then I think C# or Java would be better.

Best "official" scripting language for Windows programmers [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Suppose there were several projects mostly maintained by smart interns, who eventually leave after a period of time. Scripts are used here and there in key parts, for example, to back up a database, rename it, zip it, move it over ssh, unzip it, and then to restore it with different settings. You know, the scripting stuff.
The programming languages for the application side is set, but those for scripts have been relaxed. Currently there are probably healthy mix of bash and .bat file, and maybe some Perl.
1) To avoid language proliferation, and 2) because I don't want to force bash upon future Windows programmers, I'd like to set an "official" scripting language.
Google picked Python for this, and it's famous for being readable, easy to learn, and having good library; however, I personally don't find it that readable compared to C-like grammar, Pascal, or Ruby.
In any case, if you were to be forced to use only one scripting language on a Windows machine (with Cygwin if you want to) for all scripting, what would you like it to be, and why?
Related religious wars:
What Is The Best Scripting Language To Learn?
Which Scripting language is best?
PowerShell - designed from the ground up to be a Windows scripting language, and it can hook into the CLR for advanced functionality.
(yes, I realize this doesn't run under cygwin... but why is that a requirement?)
When I've written cross-platform product installers, coding a UNIX shell script for Linux/Mac/Solaris etc. is really easy, but trying to do equivalent tasks in BAT is like working in the dark, underwater, with both hands tied behind your back. I can't state strongly enough that BAT scripts are a blight on humanity.
So what I've heard about PowerShell makes me happy. It's a life-saver for Windows developers. The only trouble is that I believe it's still a separate install, it isn't available by default (I've read that it'll be on Windows Server 2008 and Windows 7).
Oh well, it only took Microsoft 20 years to replace BAT scripts with something as capable as UNIX shell, so I guess I shouldn't be too ungrateful! >:-P
Get the installer for PowerShell here:
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx
I'll try to provide an alternative - JavaScript and VBScript work fine too even on Windows versions long gone, and they don't need a seperate installation like PowerShell. ;) Of course, PowerShell has more power :P
I'd urge you to give Python a chance. It looks a little odd to 'C' programmers at first, but its easy to pick up and more importantly easy to remember. You are going to have interns of various skill levels using and modifying the code so you want something that can draw from a wide user base. And if you are going to go to the trouble of installing something new why choose powershell which is going to be a dead end for anyone using it.
Powershell. It's got the breadth and the depth, and is fully supported (now and in the future.) Unlike Cygwin, for instance.
The best scripting language I have come across for interface and control type applications in Windows is AutoHotKey. Anyone developing on windows should learn about this language... It can save you an enormous amount of time just automating retarded windows tasks...
One of the most useful tools I have come across for Windows is Texter
This utility is written in AutoHotKey and saves me from having to type anything more than a few times... An indispensable tool for a coder or anyone filling in forms or tickets...!
If you are like me and want to display nifty progress bars or splash screens while your script is doing it's magic (instead of a black/gray command prompt window), use AutoHotkey. Showing a progress bar is a PITA with JScript/VBScript (WSH) and/or PowerShell from what I've found. In AHK it's as simple as:
Progress, b2 m, ACME App, Doing some magic...
Also you can interact with almost any control in any window and automate apps which are not meant to be automated.
For your particular description, PowerShell sounds like a good way to go ... but I would make a strong case for JScript under WSH (or JavaScript under Rhino/etc.). Sounds like you like CYGWIN, but Powershell does not currently have support for other platforms (too much native stuff I think -- that's a separate discussion IMO, but Google should answer it).
I pretty much make the case here:
http://mikesharp.wordpress.com/2011/04/03/jquery-for-administrators/
Some highlights:
JavaScript is installed by default on every Windows OS after '95
JScript scripts work "out of the box" with Active Directory
ECMAScript is an open standard (which JScript is an implementation of)
Through ActiveX/COM JScript can do most of what Powershell can do and under Rhino it has the power of Java
Can be used to create HTA applications (and later, metro apps with WinRT/HTML5)
JScript doesn't have direct access to the .NET framework -- although there are a few 3rd party JavaScript engines in pure .NET that interpret it and can share objects with it like Jurassic and IronJS. Also wrappers like JavaScriptDotNet (around Chrome/V8).
Powershell will likely be faster than JScript under WSH, but the same might not be said of other 3rd party interpreters.
Just please don't go with VBScript (lacking try/catch, no real OOP, proprietary, deprecated, etc.).

Resources