![]() |
Advice on Windows Development options...
Hey all. I'm hoping I might be able to get some advice from those who program under Windows.
First, a bit of context: I have been programming for 25 years; I am "fluent" in C, C++, Perl, Java, Javascript and SQL. I can deal with several other languages, including four assembly languages. I'm not a "nobb" when it comes to coding. But... I am of the "old school"... I prefer to work at the command line, using my own editing tools, and then pass the files through the assemble/compile/link chain using "make". I hate IDEs. And I hate Windows! Never use it myself. Unix is my comfort zone. Next, the driving problem: Ironically, I have a need of developing a Windows application / service. Requirements: 1. Fairly simple GUI. Less complex than Prime95. 2. Ability to do ICMP network work. 3. Ability to do TCP network work. 4. Ability to run in the background at start-up/login (much like Prime95). So, what I'm hoping to get advise on is... What do people recommend for a development environment for someone like me developing an application with the above requirements? I'm willing to pay for the environment, but I generally prefer to use Open Source solutions whenever possible. Is cross compiling an option from Linux to a Windows application with the above requirements (particularly the GUI)? If not, I will run the development environment under Windows inside a virtual machine. I'd prefer to code in C for this, but C++ is an option if C isn't possible. C# is out; Java can't do the network work needed. Any and all advice greatly appreciated. I haven't had to code under Windows for 12 years. (Borland' C environment, for anyone who's wondering.) Thanks. |
[QUOTE=chalsall;251272]Hey all. I'm hoping I might be able to get some advice from those who program under Windows.
First, a bit of context: I have been programming for 25 years; I am "fluent" in C, C++, Perl, Java, Javascript and SQL. I can deal with several other languages, including four assembly languages. I'm not a "nobb" when it comes to coding. But... I am of the "old school"... I prefer to work at the command line, using my own editing tools, and then pass the files through the assemble/compile/link chain using "make". I hate IDEs. And I hate Windows! Never use it myself. Unix is my comfort zone. Next, the driving problem: Ironically, I have a need of developing a Windows application / service. Requirements: 1. Fairly simple GUI. Less complex than Prime95. 2. Ability to do ICMP network work. 3. Ability to do TCP network work. 4. Ability to run in the background at start-up/login (much like Prime95). So, what I'm hoping to get advise on is... What do people recommend for a development environment for someone like me developing an application with the above requirements? I'm willing to pay for the environment, but I generally prefer to use Open Source solutions whenever possible. Is cross compiling an option from Linux to a Windows application with the above requirements (particularly the GUI)? If not, I will run the development environment under Windows inside a virtual machine. I'd prefer to code in C for this, but C++ is an option if C isn't possible. C# is out; Java can't do the network work needed. Any and all advice greatly appreciated. I haven't had to code under Windows for 12 years. (Borland' C environment, for anyone who's wondering.) Thanks.[/QUOTE] Before getting to Visual Studio suite, check Nokia QT development [url]http://qt.nokia.com/[/url] It's cross-platform, GUI and networking enabled, and uses GCC as compiling engine... Luigi |
You can install Cygwin and get a (somewhat slow) faithfully posix environment to do your development, but released products require the Cygwin runtime libraries. If you don't want that, you can install MinGW and at least get a bash shell and some basic unix tools, but it's less unix-y than running in Cygwin (symlinks, for example, behave very strangely). Your released binaries do use Microsoft's runtime shared libraries, which is nice.
|
[QUOTE=jasonp;251282]You can install Cygwin and get a (somewhat slow) faithfully posix environment to do your development, but released products require the Cygwin runtime libraries. If you don't want that, you can install MinGW and at least get a bash shell and some basic unix tools, but it's less unix-y than running in Cygwin (symlinks, for example, behave very strangely). Your released binaries do use Microsoft's runtime shared libraries, which is nice.[/QUOTE]
Hey jasonp. Thanks for that. But... Just to clarify, what I am after is a tool-chain which allows me to produce a single "application.exe" file which my clients can run under Windows with no other dependencies needing to be installed. Again, much like Prime95 in that regard. Although my application will be doing much different work. |
[QUOTE=ET_;251277]Before getting to Visual Studio suite, check Nokia QT development [url]http://qt.nokia.com/[/url]
It's cross-platform, GUI and networking enabled, and uses GCC as compiling engine... Luigi[/QUOTE] Thanks Luigi. I'm not sure QT will be able to do all I need to do (low-level ICMP networking), but it is definitely on my radar. Any other suggestions from those in the know? |
[QUOTE=chalsall;251287]Thanks Luigi.
I'm not sure QT will be able to do all I need to do (low-level ICMP networking), but it is definitely on my radar. Any other suggestions from those in the know?[/QUOTE] Tcl/tk. I personally don't know it very well, but it is popular where I work for doing cross platform GUI development. Just to put it on your radar as well... Some getting started links: [url]http://tcl.tk/[/url] [url]http://wiki.tcl.tk/[/url] |
[QUOTE=bsquared;251288]Tcl/tk.
I personally don't know it very well, but it is popular where I work for doing cross platform GUI development. Just to put it on your radar as well...[/QUOTE] Thank you bsquared. All input is appreciated. But the question is not so much the GUI, but a development environment with access to the low-level networking APIs under Windows. I can live without the GUI if I have to. I can't work without the networking.... |
[QUOTE=chalsall;251291]Thank you bsquared. All input is appreciated.
But the question is not so much the GUI, but a development environment with access to the low-level networking APIs under Windows. I can live without the GUI if I have to. I can't work without the networking....[/QUOTE] I'm not sure if it has what you need or not. If it helps, I believe it was used to create an IM program. |
How about windows SDKs paired with CMake to produce e.g. nmake-compilable projects ? You will be able to do development in whatever environment you like (vim, emacs, etc.) and then just execute the build command.
Secondly, unless you do static linking I don't think mingw/cygwin/qt/glib will be of any use to you due to a single-binary requirement. |
[QUOTE=tichy;251297]How about windows SDKs paired with CMake to produce e.g. nmake-compilable projects ? You will be able to do development in whatever environment you like (vim, emacs, etc.) and then just execute the build command.[/QUOTE]
Could you please expand on the available "windows SDKs"? [QUOTE=tichy;251297]Secondly, unless you do static linking I don't think mingw/cygwin/qt/glib will be of any use to you due to a single-binary requirement.[/QUOTE] Sorry -- I should have been explicit about this -- static linking of any required libraries to the executable is a viable (and expected) option. |
[QUOTE=chalsall;251300]Could you please expand on the available "windows SDKs"?[/QUOTE]
How about [URL="http://en.wikipedia.org/wiki/Microsoft_Windows_SDK"]this[/URL] for a starter ? I'm not a schooled windows expert, but AFAIK Windows Platform SDK will give you the [FONT=Courier New]cl.exe[/FONT] compiler among other tools, headers, libraries (in different flavours) - basicaly everything you need. [URL="http://en.wikipedia.org/wiki/CMake"]CMake[/URL] OTOH is a build system generating tool, which will detect your development tools (windows sdk for instance, but mingw is an option too) and prepare desired GNU Makefiles/NMake makefiles/Visual Studio projects/Eclipse projets, etc. based on your predefined settings. |
| All times are UTC. The time now is 22:06. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.