|
Hello Garth,
Yes, I have a pretty darn good idea of how I want the data displayed. I have done a lot of thinking on this project. If you think the desire for portability rules out MFC, then what does it rule in?
Thanks for your time
If you work with telemetry, please check this bulletin board: http://www.bkelly.ws/irig_106/
|
|
|
|
|
well, depends on 'how much portability' - I thought of 'Qt' and C#/Mono first off .. if you go the C#/Mono route I think that gives you winforms on linux (Mono)
'g'
|
|
|
|
|
I have visual studio and home and at work, but neither of the suggestions you made. What would you recommend within VS?
Thanks for your time
If you work with telemetry, please check this bulletin board: http://www.bkelly.ws/irig_106/
|
|
|
|
|
|
VS for Visual Studio
We have only Windows where I work. I do not expect the code to simply compile and run on other operating systems. I just want to ease the task a bit for someone that might want to do that.
So which Visual Studio Template do you suggest for this project?
Thanks for your time
If you work with telemetry, please check this bulletin board: http://www.bkelly.ws/irig_106/
|
|
|
|
|
nooo .. you dont say
I think if you stick with a pure VS/Microsoft environment, your portability options are limited, again, depending on 'what portability' you want .. what I was thinking of with the Mono stuff is, and I'd need to check, it allows you to have pretty well one code-base - you'd just have to compile it for mono on the Linux platform
Why not write it in VS/MFC now, the core functionality (ie, not the display stuff) can be separated out into its own layer, and then consider where else/what else (if ??)you need it to run on...
There are 'Open IDE's for c, c++ iirc, that work with VS compiler, GCC etc (although the name of one eludes me right at this second)
|
|
|
|
|
Re: nooo ... you dont say.
Re: Re: not sure about the 'within vs'
That sounded to me like you did not know what I intended with "vs." I did not mean to be sarcastic or anything.
Within MFC: I read about the various options: multi document, single document, and dialog in the help file, but it was really not very informative. Single document and multi document both provide a window with File open menus and the such already added. Dialog does not have that, but it "appears to be" a much simpler project. I only need to have one document open at a time.
Keeping this simple: There are about ten sections to a TMATS header. To make it simple for the reader I want to put the data for each major section in a separate dialog/window/(or some silly entity).
So which MFC option would you take?
Thanks for your time
If you work with telemetry, please check this bulletin board: http://www.bkelly.ws/irig_106/
|
|
|
|
|
I would probably go Dialog, or Single document,
thought 1 : a tab bar, each tab being a section/TMATS header
thought 2 : 2 'panes' - left hand 'pane' is a tree structure (or listbox ?) of the file sections, when clicked upon, the TMATS header is displayed in detail on the right hand 'pane'
|
|
|
|
|
This is really helpful for me. I would not have thought of either one. If I google each will I find a good description?
I think the multiple tabs would be easier, but the split pane concept (kind of like Windows Explorer?) would also be cool. What is the approximate work effort for each? Maybe on a one to ten scale? I don't really care what the ten on that scale really means, just a comparison between the two. Maybe assign ten to the more difficult one and assign something less than ten to the easier one.
Thanks for your time
If you work with telemetry, please check this bulletin board: http://www.bkelly.ws/irig_106/
|
|
|
|
|
just on a quick thought, the tabs are easier - caveat : as long as you only use them for 'displaying' data, ie, you dont have things going on in tabs that you need to pass between/to other tabs (Ive used a 5 tab bar as a workflow type thing, but an error in tab 3 meant they had to go back to tab 2 for example). One thing that may go against this is the size of the dialog, vs the number of tabs - 'fitting them on/scrolling them' so all the info is apparent to the user - with the dual pane view, you might not have that issue.
Im thinking '4' for tabs, and maybe '7' for split-pane
Again, if you have a class, with unit tests etc, that can handle parsing, 'getting sections', getting data from your TMATS files, then fitting it with a new UI shouldnt be a biggie
Im pretty sure google would bring up plenty of articles .. there's bound to be some lurking here on cp, if only for ideas
|
|
|
|
|
Thinking of Tabs: If I have a class in charge of writing, can it access the tabs to fetch the data, then write the data to a new file?
I presume I would need to create some type of writer class that would be able to poll each tab asking for the data contained within the tab. (Presuming each tab is a separate object ) to provide the data to the file writer. Then the file writer class would poll each tab to get the data to write out.
Its past my bedtime so I'll not respond again and catch up tomorrow. But again, this has been very helpful for me. Thank you for taking the time to maintain this conversation.
Thanks for your time
If you work with telemetry, please check this bulletin board: http://www.bkelly.ws/irig_106/
|
|
|
|
|
I forgot about this [requirement]
>> The user will be able to edit the data and write out to a new file.
So maybe the tabs have some sort of edit - possibly hex edit control on them
Its not impossible - a 'commit changes' or 'write to file' button on the main dialog would loop through the tabs writing the data obtained from the edit control on it.
I think I would write, from an abstraction point of view ...
3. GUI Code
2. Tab Manager - Possibly linked to buffer manager/dirty flag - you need to know the order of the tabs and if they have been changed or not
1. File Parser/Writer
its about bed time for me too 
|
|
|
|
|
Hi all!
I want to do it, same as my topic...
do pratical???
if this can, and can u help me.
thanks so much
|
|
|
|
|
Hi guys,
I'm confused. I need to create interprocess communications between x64 and x86 processes running on the same machine.
Can I use COM for it? Cannot see anything on web.
Or does that mean that I must use DCOM?
Thanks for help.
|
|
|
|
|
Both COM and DCOM are dangerous to use and can easily crash both processes if there is a bug.
IMHO it is better when you use sockets for the inter-process communications because it makes the way your communication works more reliable and the two processes gain a bit of independence (of course you have to add error handling for failed communication attempts, otherwise you are having the same problem as with DCOM and COM).
Just my two cents about how we use to do it at our company.
|
|
|
|
|
I will take into account your 2 cents . Still, the question is open.
|
|
|
|
|
Off course there are opportunities when you need to use COM or DCOM, but the savest way of using them is to avoid the usage .
|
|
|
|
|
I've only used DCOM between machines and processes. When I did try to use it quite a while ago, I soon gave up on it due to security and permission problems when trying to do anything between machines in a corporate environment and so used MSMQ (Message Queuing) instead - much easier to work with and provides nice decoupling. Setup a named queue, connect at one end to post messages, connect at the other end to receive messages. Makes testing easy too. As others have said there are other ways as well.
|
|
|
|
|
I would definitely use a socket for IPC, maybe shared memory in some cases. The most lightweight interprocess communication channel is probably an unnamed pipe but sockets are more flexible not to mention that the loopback interface is decoupled from the network stack so if both endpoints are on your machine then sockets are super-fast. With sockets you have the opportunity to run the processes on different machines anytime without much effort (possible with name pipes too, but thats more hassle and not crossplatform like sockets). In my opinion COM and DCOM are just unnecessary complications to solve your problem.
|
|
|
|
|
I backup the opinions on using sockets. Use them. That knowledge will help in the long run and will be good for other platforms. I wrote some articles on TCP/IP that might be useful. Search for them on this site.
Thanks for your time
If you work with telemetry, please check this bulletin board: http://www.bkelly.ws/irig_106/
|
|
|
|
|
You can use COM objects if you make sure they are automation compatible (have the [oleautomation] attribute and use only automation compatible types in their methods). This will assure that all required marshalling code exists - it will be just like DCOM. There might be other ways (like writing your own marshalling code), but this is a way that will work. You can, of course, also use DCOM.
However, it depends very much on the details of your project, is this is the right way. The advantages are, that COM takes care of everything, like marshalling your data correctly (even between 32/64 bit processes). But also you might run into a lot of things that will be not so easy to solve for unexperienced COM programmers.
There are quite some articles here on CP about IPC, might be worth to take a look there.
In case you want to experiment a bit (and I would strongly suggest that before you decide for a certain solution!) I would suggest WTL (check out http://www.codeproject.com/kb/wtl/ [^]. A series of some very good articles is Michael Dunn's WTL for MFC Programmers). Create a project with the option "Create as COM Server" (will appear in the Application wizard). It will give you an exe project with a UI, that also acts as a COM server. Create two such projects in your solution, add some COM objects and start to play around a bit.
|
|
|
|
|
Normally the backward compatibility was planed to ensure that if one soft is compiled for an old version of the library, it can continue to work with the new higher version of the library without recompilation or special adaptation.(situation 1)
Is the reverse also true?
Means if the soft is compiled with the new higher version of dll it can continue to work with the old version of the library without recompilation or special adaptation.(situation 2)
My situation is the first one, So I ask if should I have also situation 2 works ?
|
|
|
|
|
Without knowing what library you are talking about, or what your program does, it is impossible to answer this question.
Use the best guess
|
|
|
|
|
In the end, no one of us can see into the future, therefore it is not possible to say that your program will work with another version of the DLL in the future. Just because it is... you know... the future.
|
|
|
|
|
I had an application which is using MFC serialization mechanism w.r.t MBCS (both for serialization/ de serialization ). Now I would like to convert my application to read/write Unicode using MFC serialization mechanism.
What would list of changes in this regard. (dos & dont's) Thanks in Advance !!
|
|
|
|