|
I assume you made a typo. The first buffer has only 40 valid items, so the ranges will be [0, 39] and [40, 89]
unsigned char buf1[40];
unsigned char buf2[50];
unsigned char result[90];
memcpy(result, buf1, 40);
memcpy(&result[40], buf2, 50);
|
|
|
|
|
If you're using C then you're going to have to use such abberations as malloc, free and memcpy. If you're using C++ you can get away with using a vector - it can be used just about anywhere a built in array can be used and doesn't involve memory management. If the two buffers are called buffer_1 and buffer_2 (and they're arrays and not some block of memory bunged on the heap):
std::vector<char> appended_buffer( &buffer_1[ 0 ], &buffer_1[ 40 ] );
appended_buffer.resize( appended_buffer.size() + (&buffer_2[ 50 ] - &buffer_2[ 0 ]) );
std::copy( &buffer_2[ 0 ], &buffer_2[ 50 ], &appended_buffer[ 40 ] );
The big problem with this is you have to know the sizes of the buffers you're copying from. You can get around this by never using raw character buffers and using vectors for everything. If buffer_1 and buffer_2 are vectors:
std::vector<char> appended_buffer( buffer_1.size() + buffer_2.size() );
std::copy( buffer_2.begin(), buffer_2.end(),
std::copy( buffer_1.begin(), buffer_1.end(), appended_buffer.begin() ) );
The nested copying takes uses the fact that std::copy returns the place (actually it's an iterator) where the second copy has to start - really handy. All this is a lot easier than messing about with manually managing memory. Well, unless you're a masochist.
Cheers,
Ash
|
|
|
|
|
A future prospective employer mentioned C++ is an excellent language to learn for the field I wish to work in, and especially in their company. "Sounds good" says I. I already taught myself enough Python to have fun with it, C++ seems like a nice language after that. (For precisely the same reasons the languages are different. Strongly typed, compiled, etc.)
Now, after wrestling with Google, and the Eclipse SDK, I gave up, (it was going on about "toolchains", and I was thoroughly confused, and couldn't get anything to compile) and installed Visual C++ 2008 EE.
All's now well and good, and I'm quickly getting used to syntax, non-dynamic variables, etc.
Thing is, I learn to swim faster if I'm in the deep end. Where I left Python, I was trying to implement some sort of primitive 3D rendering with a 2D library, so I figured an acceptable depth for C++ would be some sort of 3D shenanigans.
All this, so far, points to DirectX being a likely candidate. No thanks, I'm in this for open-source, cross-platform, hyphenated-fun.
So, to OpenGL. In Python, as you can imagine, I'm used to just "import PyOpenGL as og" or whatever. From what I gather, the parallel(s) in C++ is/are libraries. And this is where I deadend. I can't seem to find libraries that aren't windows-specific. Every tutorial I've stumbled upon looks extremely windows-specific, too, one of them mixing OpenGL graphics, with DirectX input or sound modules, or something. (Didn't make sense to me; if you're on windows, and windows alone, why not just use full DirectX?)
So, TL;DR version: Cross-platform C++ OpenGL libraries + documentation please.
Added bonus question: How do I get Eclipse to work?
|
|
|
|
|
If you want to develop cross-platform GUI applications, the best way is to use a cross-platform framework: this will give you a coherent set of APIs to do almost everything in a platform independant way.
The best of them, in my opinion, is the Qt framework (see Qt - A cross-platform application and UI framework[^]): it give you a complete set of functionalities and OpenGL is included. It could be used under three licensing scenarios: GPL, LGPL and Commercial. There exists a Python binding too...
Another similar toolkit is the wxWidgets (see http://www.wxwidgets.org/[^]) which is licensed under a modified LGPL license, but I don't know if it supports OpenGL...
modified on Wednesday, July 21, 2010 3:36 AM
|
|
|
|
|
I've heard of both wxWidgedts and Wt, but when using Python, I chose to use GTK+, which lead me to believe that they were... Well, GUI libraries, not 3D libraries. Would using them, instead of pure OpenGL, not add unnecessary overheads?
|
|
|
|
|
Yes, that is true, however consider that OpenGL integrates in the platform-specific windowing system; in other words with ANSI C/C++ and OpenGL only you will be not able to do nothing, you need at least to use the platform-specific API required to access the windowing system. Said that, the little overhead of a cross-platform framework is nothing compared to what it offers you; for instance the Qt give you a class named QWindow that let you create a window in just 2 lines of code (instead of plenty of lines required using the platform-specific API), these 2 lines are always the same on every platform supported, and the window that you obtain is automatically bounded to an OpenGL rendering context, then you can call the standard gl and glu family of functions on it (without the need of writing plenty of lines of code required to create the rendering context, bind it to the window, activate and deactivate it in the right places and so on).
|
|
|
|
|
Sounds good, I'll look into it, thank you very much.
|
|
|
|
|
If you'd like to have a look to the Qt framework, I suggest you to download this: C++ GUI Programming with Qt4[^]
This is the first edition of the official book and is available for download from the Qt website: I remember that there is a chapter specific to the OpenGL...
|
|
|
|
|
Hi,
How could I pass data from MFC application to .Net user control? I have added .Net Chart Control to MFC application. The problem is passing data to that control.
Does anyone have any ideas about this?
Regards
Daniel
|
|
|
|
|
This[^] here looks promising, also this[^] might help.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
Thanks Code-o-mat
I'm using Forms::DataVisualization::Chartting control. How could I send X, Y data to chart?
Regards
Daniel
|
|
|
|
|
How could I send X, Y value to Chart control, this control in DataVisualization.Chartting.
Thanks
|
|
|
|
|
I never used any .NET controls in MFC so i'm not sure, but i suspect that if you used this CWinFormsControl class as shown in the example(s), you can get a pointer at the control's managed class thorough CWinFormsControl::GetControl[^] and then use it's methods to "communicate" with the control, try checking out this[^].
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
how to add cur resources to any executable by program?
|
|
|
|
|
Have you looked at UpdateResource(hResource, RT_CURSOR, ...) and related functions?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
Yes, I have looked. It's ok for icon resources, but fail for cur resources, who can help me, thanks
|
|
|
|
|
Explain what you mean by "fail"? It crashes, UpdateResource returns with FALSE (in this case, what does GetLastError give you?), everything seems to succeed but the executable is not updated/saved?
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
Everything is ok, but the cur added is black and with wrong data attribute(size, color and so on), i don't know which go wrong, however the same code is fine for icon file
|
|
|
|
|
And you are sure the source is OK, i mean the cursor file you want to add.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
Yes, i think so, as i replace the source of one cur resource with the tools of "Res Hacker", it's ok!
|
|
|
|
|
Maybe the data gets corrupted when you load the cursor file to be passed as the pData parameter of UpdateResource[^]? The documentation also says that it has to be properly alligned, could this maybe be the cause of the problem?
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
nenfa wrote: ...but fail for cur resources...
So UpdateResource() returns 0 ?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
No, it returns non-zero value, if i change to RT_ICON, it'll show, this's so strange
|
|
|
|
|
I embed a COleDocObjectItem in my CView object, when COleDocObjectItem is initialized, it
makes my CMainFrame's toolbar disappeared.
I think COleDocObjectItem::OnActivateUI causes that. I am wondering if I can override
OnActivateUI and bring back the toolbar.
TIA for your help.
|
|
|
|
|
Hi Team,
I have written my Application using MFC Doc/View architecture and I am using the Print feature of MFC Doc /View Architecture . I have written some code to print the chart using Printer .
But if I want to print using Plotter ,do I need to write different logic ,or the same code which is used to print in Printer will be applicable for the Plotter also .
I would be really grateful for the Inputs.
Regards,
Jack
|
|
|
|
|