mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > Software

Reply
 
Thread Tools
Old 2011-02-04, 16:24   #1
chalsall
If I May
 
chalsall's Avatar
 
"Chris Halsall"
Sep 2002
Barbados

26EA16 Posts
Default 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.
chalsall is offline   Reply With Quote
Old 2011-02-04, 17:04   #2
ET_
Banned
 
ET_'s Avatar
 
"Luigi"
Aug 2002
Team Italia

10010110111102 Posts
Default

Quote:
Originally Posted by chalsall View Post
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.
Before getting to Visual Studio suite, check Nokia QT development http://qt.nokia.com/
It's cross-platform, GUI and networking enabled, and uses GCC as compiling engine...

Luigi
ET_ is offline   Reply With Quote
Old 2011-02-04, 17:29   #3
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3·1,181 Posts
Default

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.
jasonp is offline   Reply With Quote
Old 2011-02-04, 17:39   #4
chalsall
If I May
 
chalsall's Avatar
 
"Chris Halsall"
Sep 2002
Barbados

996210 Posts
Default

Quote:
Originally Posted by jasonp View Post
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.
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.
chalsall is offline   Reply With Quote
Old 2011-02-04, 17:42   #5
chalsall
If I May
 
chalsall's Avatar
 
"Chris Halsall"
Sep 2002
Barbados

996210 Posts
Default

Quote:
Originally Posted by ET_ View Post
Before getting to Visual Studio suite, check Nokia QT development http://qt.nokia.com/
It's cross-platform, GUI and networking enabled, and uses GCC as compiling engine...

Luigi
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?
chalsall is offline   Reply With Quote
Old 2011-02-04, 17:46   #6
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2·1,789 Posts
Default

Quote:
Originally Posted by chalsall View Post
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?
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:
http://tcl.tk/
http://wiki.tcl.tk/
bsquared is offline   Reply With Quote
Old 2011-02-04, 17:51   #7
chalsall
If I May
 
chalsall's Avatar
 
"Chris Halsall"
Sep 2002
Barbados

2·17·293 Posts
Default

Quote:
Originally Posted by bsquared View Post
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...
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....
chalsall is offline   Reply With Quote
Old 2011-02-04, 18:25   #8
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2×1,789 Posts
Default

Quote:
Originally Posted by chalsall View Post
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....
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.
bsquared is offline   Reply With Quote
Old 2011-02-04, 18:34   #9
tichy
 
Nov 2010

22·19 Posts
Default

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.

Last fiddled with by tichy on 2011-02-04 at 18:36 Reason: szyk
tichy is offline   Reply With Quote
Old 2011-02-04, 18:45   #10
chalsall
If I May
 
chalsall's Avatar
 
"Chris Halsall"
Sep 2002
Barbados

100110111010102 Posts
Default

Quote:
Originally Posted by tichy View Post
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.
Could you please expand on the available "windows SDKs"?

Quote:
Originally Posted by tichy View Post
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.
Sorry -- I should have been explicit about this -- static linking of any required libraries to the executable is a viable (and expected) option.
chalsall is offline   Reply With Quote
Old 2011-02-04, 19:01   #11
tichy
 
Nov 2010

4C16 Posts
Default

Quote:
Originally Posted by chalsall View Post
Could you please expand on the available "windows SDKs"?
How about this for a starter ? I'm not a schooled windows expert, but AFAIK Windows Platform SDK will give you the cl.exe compiler among other tools, headers, libraries (in different flavours) - basicaly everything you need. CMake 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.

Last fiddled with by tichy on 2011-02-04 at 19:02
tichy is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
LLR 3.8.6 Development version Jean Penné Software 0 2011-06-16 20:05
LLR 3.8.5 Development version Jean Penné Software 6 2011-04-28 06:21
LLR 3.8.4 development version is available! Jean Penné Software 4 2010-11-14 17:32
24.14 Crashing windows - only with some options markg Software 18 2008-05-19 16:03
Floating point options for Windows XP 64 dsouza123 Hardware 2 2005-03-12 17:45

All times are UTC. The time now is 11:58.


Tue Oct 26 11:58:42 UTC 2021 up 95 days, 6:27, 0 users, load averages: 2.43, 2.57, 2.57

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.