|
I did not have used it so far but it should be possible to copy the values to your array this way:
double *da = new double[n * 3];
for (int i = 0; i < n; i++)
for (int j = 0; j < 3; j++)
da[i*3 + j] = B(i, j).real();
|
|
|
|
|
Thank you very much.
My code is in Loop many times, so i want a efficient code. your code can reach my function,but efficient i think it's not good.
|
|
|
|
|
It is difficult to answer without knowing how the data are used. But a short web reserach found this: [EIGEN] How to get in and out data from Eigen matrix | Vlad's Blog[^].
So it seems that you can use Map to get a pointer to the complex values. That should be sufficient because the real part is stored first and therefore already at the specified index (when *p is a pointer to a complex array, p[n] and p[n].real() have the same address).
|
|
|
|
|
Hi,
Working with MFC Ribbon designing Ribbon Menu with the help of XML .Now the problem is ,I want to design Menu by single-2 (.bmp)images not by the transparent Images Strip with the help of Index.
I have tried so many ways but don`t get any success.
<CATEGORY>
<ELEMENT_NAME>Category</ELEMENT_NAME>
<NAME>Home-Y</NAME>
<KEYS>H</KEYS>
<IMAGE_SMALL>
<ID>
<NAME>IDB_WRITESMALL</NAME>
<VALUE>110</VALUE>
</ID>
</IMAGE_SMALL>
<IMAGE_LARGE>
<ID>
<NAME>IDB_WRITELARGE</NAME>
<VALUE>111</VALUE>
</ID>
</IMAGE_LARGE>
<PANELS>
<PANEL>
<ELEMENT_NAME>Panel</ELEMENT_NAME>
<NAME>Clipboard</NAME>
<KEYS>D</KEYS>
<INDEX>1</INDEX>
<ELEMENTS>
<ELEMENT>
<ELEMENT_NAME>Button</ELEMENT_NAME>
<ID>
<NAME>ID_EDIT_PASTE</NAME>
<VALUE>57637</VALUE>
</ID>
<TEXT>Paste</TEXT>
<KEYS>V</KEYS>
<INDEX_SMALL>0</INDEX_SMALL>
<INDEX_LARGE>0</INDEX_LARGE>
</ELEMENT>
</ELEMENTS>
</PANEL>
</PANELS>
</CATEGORY>
The most important this, we can not change main tags of XML, beside you can change any thing related IMAGE TAGS,.
|
|
|
|
|
hi all,
i am taking help of this article for printing
Another ListView print (preview) sample.[^]
here i also want to save my print view of doctument to save as pdf.
how can i do this.
please help me for this.
|
|
|
|
|
You need to install a PDF printer driver to use as your destination device. Alternatively you can write the code yourself using a third-party library, or code it from scratch by studying the Adobe PDF specification.
|
|
|
|
|
can u please provide me any example of this.
|
|
|
|
|
Example of what? If you want to use a printer driver then Google will find you one. If you want to write it yourself then Google will again find you samples.
|
|
|
|
|
I am building my first class to output graphic to LCD connected to a micro.
Making small progress, however, since there is no proccess feedback form the LCD itself I have to "wait" until something, anything , shows on the LCD.
To test my code I opted to let the constructor paint the whole screen red.
Now for silly question.
I understand constructor function is to instantiate the class so the class methods can be used.
In general most constructors in micro world just take care of very basic - I/O pins assignments, serial baud rate etc.
Would it make more sense if I do all the painting OUTSIDE of constructor?
Or is is just one of those "personal preferences" ?
Eventually I will have more than one instance of this class running.
Thanks , any comments are as always appreciated.
|
|
|
|
|
When using the class multiple times it will make of course sense to perform the output in it's own function. Otherwise each usage will initially draw the same. Even for testing you can call that function (it is just one function call after creating the class).
While you can do anything you want in a constructor, it is often not utile. Because constructors did not return a value, you will often find an additional setup function that returns success/failure while the constructor only initialises members variables.
|
|
|
|
|
Vaclav_Sal wrote: To test my code I opted to let the constructor paint the whole screen red.
Painting sounds like a behavior rather than a setup. Thus the constructor isn't where it goes.
Vaclav_Sal wrote: in micro world
Far as I know micro coding tends to strongly favor execution efficiency. So that decides it. After that then for object oriented programming it follows the idiom that
1. The constructor does what must be done for the object to exist. If it fails then the object cannot exist.
2. Other than 1 everything else is behavior so a method not in the constructor.
So if you can't paint the screen red is that a error or does it mean that caller is done and cannot and must not proceed?
|
|
|
|
|
Thanks.
It definitely makes sense to utilize methods return values, something I do most of the time anyway, and let the constructor just do very basic.
As I mentioned, in the real case of LCD class, I do not have feedback from most of methods,so I need to change my debugging.
Instead of blindly painting the whole screen I'll just paint one pixel ( which I probably won't be able to see) and than read it back.
I guess I should walk before running, or better yet after falling down while running it is time to go back to walking.
|
|
|
|
|
|
If it clears things up at all....
If you ever write some C++ code using MFC (Microsoft's Foundation Class, essentially an OO wrapper around the WinAPI), you'll notice that there are always initialization routines aside from constructors (they're called OnInit...blah ).
If you happen to use a dialog object, and attempt to draw from the constructor instead of the initialization routine, you'll notice that the objects exist but are not windows yet so you'll get an assertion (if running in debug mode). This means that the constructors have been called but nothing has been drawn yet. The drawing only occurs after all the constructors have been called, the initialization routines are systematically called after that and you can load all the widgets with whatever the default values to be displayed are.
Moral of the story, drawing typically doesn't take place during construction of objects.
|
|
|
|
|
Hi,java has
-- modified 3-Apr-18 8:53am.
|
|
|
|
|
madhuresh sachan wrote: after this line cursor goes direct to the end of function,does not read below given code What does this mean?
How did you know that the code is not read (executed would be a better word) if not using the debugger?
Your code snippet contains no operation that changes any GUI element (enables/disables items) so that you would not 'see' anything.
So run your program in the debugger and check what happens (e.g. by inspecting pRibbon , initial pos , lstItems.GetCount() , and the loop execution).
|
|
|
|
|
Thanks for your reply
pRibbon->GetItemIDsList(lstItems);
In "lstItems" all the items of menu is coming,
But the Main Problem is
when I run this on debug mode,it is not executing the code after "pRibbon->GetItemIDsList(lstItems);" line of code.
|
|
|
|
|
So when you set a breakpoint at the for loop after
pos = lstItems.GetHeadPosition();
that is not hit and execution is not stopped?
That would be weird.
I assume that you are using a debug build with all optimisations disabled. Otherwise, the compiler may optimise away the following lines because they effectively do nothing.
To check this you can insert a TRACE statement inside the loop printing nElement .
|
|
|
|
|
I was asked, "If we have mutexes, why do we need critical sections?"
My answer was that mutexes protect resources and critical sections protect code.
Was I on the right track?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Richard Andrew x64 wrote:
Was I on the right track? You decide:
Critical Section vs. Mutex - MSDN Blogs[^]
"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
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
I would think that in general, mutexes are purely kernel controlled objects whereas critical sections are mostly "user mode primitives", meaning it's application level logic most of the time (which runs a lot faster without requiring the kernel to be involved). Of course, this also implies a critical section is bound within a process and cannot be shared across processes. The exception is when there actually is a conflict, then a critical section makes a kernel call for synchronization.
If you write some test code, you should be able to notice the speed advantage of a critical section (and all the kernel system calls of a mutex).
|
|
|
|
|
Been working on Matt Pietrek's code from an old Microsoft Systems Journal article he wrote about eliminating the C Runtime (LIBC or LIBCMT) from my C++ executables, i.e., using the linker /NODEFAULTLIB switch. Your own Mike_V
wrote a tutorial on that here too...
http://www.codeproject.com/Articles/15156/Tiny-C-Runtime-Library
Everything's working GREAT for me with it except for one point which really has me scratching my head. I can't figure out how to convert a floating point number to its string representation without using one of the printf family functions in the C Runtime. Of course, Win32 'covers' or has its own versions of some of these functions, e.g., wvsprintf in user32.lib has a format specifier parameter, but its not complete; it has everything but %f, which we need to convert a floating point number to a string buffer (try it and you'll see - it doesn't work). And I obviously can't use the C Runtime functions if I'm trying to eliminate them! Does anyone know of a Win32 function which can be used to convert a floating point number into a provided character string buffer??? On MSDN I found a whole bunch of odd named functions I'm totally unfamiliar with...
StringCchLength
StringCchPrintf_l
StringCchPrintf_lEx
StringCchPrintf
StringCchPrintfEx
StringCchVPrintf_l
StringCchVPrintf_lEx
StringCchVPrintf
StringCchVPrintfEx
...and was wondering if anyone knows if any of these or perhaps some other exists which would solve my problem?
|
|
|
|
|
Shoot! I think I got it! Tried the 1st on my list above, i.e., StringCchPrintf() and it did it. Its in StrSafe.lib. I hope to God that doesn't use the C Runtime or I'm back to square one! I'll let you all know!
Fred
|
|
|
|
|
Nope. Doesn't work. Unless someone can tell me different, here's the way I see it.
Even if I find a Windows specific function that will take as an input parameter a floating point number and output into a character buffer an asci or wide character rendering, I won't be able to use it against the /NODEFAULTLIB linker switch, because it'll just be a wrapper that calls one of the functions in the C Runtime. And it'll give me linker errors. That's what happened with StringCchPrintf().
So at this point, unless someone can tell me different, I see my only choices as these two...
1) Give up on any window/console/file output using floating point numbers without the C Runtime;
2) Write my own floating point package involving the fpu.
I guess I'll try option #2 above. I see at the masm32 site there is an fpu package with assembler source available. However, I hadn't mentioned, I'm really doing 64 bit and need that. So I've got my work cut out for me.
The reason I'm doing this is because I hate the bloat of modern software. Can't take it anymore. I like C++ OK but I won't use any C++ Std. Lib. code. I write all my own library code, string class, dynamic multidimensional arrays, whatever I need, etc. So now I guess I need to come up with my own floating point code. Please save me somebody! Tell me I'm wrong!
|
|
|
|
|
So you don't want to use the standard C library with your program.
Than you have to implement all necessary functionality provided by that library and required by your application yourself. The common method to do such things is to place such functions in a library to be re-used by other projects. As a result, you will have your own standard C library (or a sub set) when using the same function declarations (which makes sense). The LIBCTINY mentioned in your article link is such an implementation.
The StringCch... functions mentioned above are just MS specific extensions to the standard library providing safe and ANSI/Unicode operations. If you have a look at StrSafe.h where they are defined, you will notice that they use the standard C library functions. So you have to implement the used functions when not using the default library.
You may search further for some Windows API function that can perform a required operation. The FormatMessage function (Windows)[^] is a candidate but did not support floating point values. However, it allows passing a pre-formatted floating point argument as string. So it may be sufficient to have a function that converts a floating point number to a string.
As far as I know the Windows API did not provide such a function. I guess there is an internal / undocumented one. But that might not be available.
So the solution is to write your own. As starting point you may have a look at some C standard library source. Candidates are for example The GNU C Library[^] and diet libc - a libc optimized for small size[^].
Finally you should know that your program will use a special standard library version when calling Windows API functions because the OS contains it's own implementations of required functions.
|
|
|
|