Need some answers before starting with C++

Hello everyone,

First at all, sorry for my english... but I'm doing my best.

I'm Marco, and new here, and I gone need a lot of help, for something very special.
i'm programming for a long time in my live,
most of it in BASIC, from GWBASIC, QBASIC, QB45, VBforDOS, ..., FreeBasic, QB64.

My most important program is the one to help find and detect cancer from CT and MRI scans.
Since my father dyed on cancer some years ago, is this one of my priority.

I did a lot of programming and created some algorithms ...

What I need are some answers before starting with C++ ...
What I'm looking for is PC windows 32/64 bits, compiler.
the reason for this, is that I need speed, speed and speed.

Not only for the graphical side, but also a lot of conversion algorithms to convert the 2D scans to 3D objects.
For the detection of possible cancer cells.

WHAT DO I NEED:

1) a graphical window/screen min 1280x1024 pix ... 4K resolution
2) a fast 2D graphical drawing library, dot, line, rectangle, circle, arc, text, ... drawing for the GUI. GDI+ ??
3) create images and sprites, to draw some stuff in it and use in screen mode GPU.
4) transparent image (ARGB) Alpha Red Green Blue setups.
5) long variable Names > 32 characters ...
6) a lot of GLOBAL and LOCAL variables > 100.000 ...
7) 32/64 bits programs for WIN 7, 8.1, 10 ...
8) virus and malware free compiled .exe program ...
9) compiler and no interpreter.
10) integration of OGRE3D and BULLET physics.
11) have more computers (work/home), can I install it on more than one PC ?


Is this possible in C++ ?
I want to use C++ for the speed, but also realize that this will be the hardest way,
to convert all my PureBasic >8.000.000 lines to C++ ...
I have some C++ experiences via ARDUINO ??

I was also looking to FASM / MASM?


best regards,
thanks,

marco

Last edited on
1) c++ does not do graphics directly, but many, many games are written in c++ and plenty of libraries exist to use graphics, up to the max resolution of the computer.
2) unix or windows or cross platform etc? it matters. directx family from windows is great.
3) any paint program, and visual studio has built in image editor as well...
4) RGBA is the way I learned it, but yes, this is supported
5) this is not good style. I believe all c++ supports it, but this is very hard to read and handle for the humans.
6) c++ supports globals, but you should not use them as they make multi-threading horrible to debug, and if you want speed, you want to thread, since any computer less than a decade old has at least 2, if not 4+, cpus.
7) yes you can compile targeted code for old computers, but you will not get your speed on antiques and old boxes may not support all those graphical resolutions.
8) if you get an infected compiler, its your fault. g++ or visual studio have plenty of safe downloads but if your computer is infected your new exe can be infected after being created, of course. Don't blame the tools, clean up your machine.
9) c++ is always compiled.
10) there are physics libraries. I don't know specific ones, beyond physx which is for games not science.
11) the compilers are freeware. If you avoid pay to use libraries, everything here is free, but the pay to win visual studio version may (I hate using words like may, but not 100% sure) make notably faster executables in some cases. This used to be the case, but I am not up to speed on current versions. The free version used to not have the full optimize setting.

more:
aurdino speaks a dialect of c++ that is not supporting the full c++ language and not entirely compatible. Be aware of this, its similar, but its not pure.
you can directly inject assembly into c++ but that ties it to that OS and often that compiler as well. you can also call assembly compiled object files in your linker as a library.

basically, you can do everything you asked in c++. You can honestly do anything a computer CAN do in c++, but some things take more work than other languages, you trade work for performance lift. You can also code mixed language, so that you could move the high performance parts off to c++ and mix it with compiled basic (there are compilers for it) for the slow parts that don't matter. There are loads of things you can do here.

If this is for windows, which you hinted at in your compile requests, you should start with free visual studio and look at writing a 2-d graphics program with microsoft's directx tools. Get this learning out of the way, and then you can see if it will do what you want, before converting a bunch of stuff and deciding it was not the right decision.
Last edited on
Hello jonnin,

thanks for your answer,
Like you told me, I go start with some small 2D stuff.
I started something with GDI+.

thanks,
marco
Ok. GDI used to be what you used to draw simple things in a simple window and it was not suitable for high speed drawing. I do not know if GDI+ is more capable or not, but before you go too far into the tool you pick, do a little research to see if it can handle what you wanted to accomplish. I am sure someone here can comment on that as well. I apologize but its been many years since I did anything more than a console program.
Cairo is a modern graphics package: https://www.cairographics.org/

BTW, for 8 million lines of code, transcoding 1000 lines per day, it will take about 22 years.
Last edited on
Qt and QtCreator Community Editions are worthy of consideration too :)

Programs can be written in your latest raw C++ version as a start, then move on to use QObjects (again C++) specifically written for this sort of graphics display application and manipulating 3D, including Arduino interfacing, Ogre3D and Bullet capability - Google it.

Qt enables production of 32/64 bit exe, app, IOS, OS, Windows, Linux, whatever ...

(The professional Qt licence is big bucks - because it's that good )

https://doc.qt.io/qt-5/windows.html
https://www.qt.io/product

the reason for this, is that I need speed, speed and speed.
No. As always there is only a small part the requires speed. The rest is user interaction and thus not time critical.

Instead of throwing away all of your code you should consider a kind of plug in.
Most languages allows to load dll at least with c interface which can use c++...

6) a lot of GLOBAL and LOCAL variables > 100.000 ...
Well, it seems that you biggest challenge would be organizing the code properly.
Look at other stuff too. As I said compilers exist for basic, visual basic for sure can render exe files, and it takes a cut at optimizing that. Also take a look at the mixed language idea, and one more, be sure whatever is too slow for you is using a good algorithm.
Time to green tick and move on. OP has plenty of alternatives to replace his ancient software. Thankyou for the enquiry but time’s up. Green tick and move on.
dutch wrote:
BTW, for 8 million lines of code, transcoding 1000 lines per day, it will take about 22 years.


Indeed. One might ask how long it took to write the 8 MLOC of original code - the OP said he had done it himself? To me it sounds way too much for one person.

Also:

MarcoPajotter wrote:
7) 32/64 bits programs for WIN 7, 8.1, 10 ...


That sounds like a bad idea. Maybe if there were multiple teams (10 people per team) Then that might be doable.

Registered users can post here. Sign in or register to post.