|
Thank you very much to your reply.
It was very helpful.
|
|
|
|
|
In addition to ccpptrain's reply...
If your app is UNICODE enabled then CString has a casting operator so you can use the string anywhere a
const WCHAR* is expected...without having to use GetBuffer().
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks for the time.
It helps a lot.
|
|
|
|
|
Mark Salsbery wrote: .without having to use GetBuffer().
What! No GetBuffer() ? That sucks.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Hehe
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Rajesh R Subramanian wrote: What! No GetBuffer()? That sucks.
I know, thats really sucks,, but come handy somewhere!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/codeProject$$>
|
|
|
|
|
ThatsAlok wrote: but come handy somewhere!
Not the best thing to have handy while converting a CString to a WCHAR* though.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
deaa all
my problem is valueX[j] value couldn't change when looping j below. anypne can help me to check? thanks a lot.
int halfSize;
int maskNum[5]={0};
double sigma[5]={0.9,1.3,1.65,1.8,2};
int maskSize;
double sumMask=0;
double T=0.66;
for (int k=0;k<5;k++)
{
halfSize = static_cast<int>(sqrt(-log(T))*2*pow(sigma[k],2));
maskSize = 2*halfSize + 1;
maskNum[k] = maskSize;
int *maskX;
double *mask;
maskX = new int[maskSize];
mask = new double[maskSize];
maskX[maskSize]=NULL;
mask[maskSize]=NULL;
for (int j=0;j<masksize;j++)>
{
maskX[j]=static_cast<int>(maskSize/2)-(2*k+2-j);
mask[j]=(1/sqrt(2*PI)*sigma[k])*exp(-pow(maskX[j],2.0)/2*pow(sigma[k],2.0));
sumMask = sumMask + mask[j];
}
for (int jj=0;jj<masksize;jj++)>
{
mask[jj] = mask[jj]/sumMask;
}
delete [] maskX;
delete [] mask;
}
Li Zhiyuan
|
|
|
|
|
I think it's because of the for loop.
for(int i=0; i<iMax; i++)
i=0 : is the initial value for i where the loop will start.
i<imax :determines the condition if valid to process or when to stop
i++ : is the iteration to change value of i.
without iteration, the value of i remains the same
invalid condition will not do the process
<div class="ForumMod">modified on Sunday, March 2, 2008 10:02 PM</div>
|
|
|
|
|
li zhiyuan wrote: my problem is valueX[j]...
Which you somehow managed to not show.
li zhiyuan wrote: ...when looping j below.
li zhiyuan wrote: for (int j = 0; j < masksize; j++)
So what is the value of masksize ?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Generic Dynamic Array with Sorting Algorithm
Perspective
Understand the use of a generic container in a specific context. Understand efficiency of an algorithm.
Assignment
For the use in a generic library your array should be expanded.
At this point you are not expected to know the impact on the design of the array why the some basic design requirements follows.
• intensive insert and delete operations anywhere in the container
• different kind of sorting algorithms will be used
• first when the application is designed the actual type to be stored is known (and that may be any type)
The customer finds it hard to develop algorithms to sort items in the list. Therefore you are requested to make a sort() algorithm in your list.
Hint: Choose a simple one like insert sort or selection sort; more efficient algorithms like quick sort, heap sort, and merge sort are more complicated to implement (will be covered in a later session).
For each design decision you must argue for your choice, pre-and cons.
Algorithm Efficiency
As part of efficiency measurements you have to analyze the running time (O – notation) of your algorithms, best-case, average-case and worst-case.
Your management wants a comparison among different techniques:
o Sorting a vector (from the STL) using selection sort and quick sort
o Sorting your array using newly developed algorithm
In order to make it possible to compare the different containers/algorithms you must (of course) use the same data to all of them.
a) create a vector with random numbers (v_rand)
b) create a new vector, copy a) hereto and sort it in ascending order (v_ascend)
c) create a new vector, copy a) hereto and sort it in descending order (v_descend)
It may be reasonably to assume that best-case and worst-case may arise if the data is already ordered as b) and c), but this is not always true.
In turn copy a), b) and c) to the container under test and start the measurement:
o start the stopwatch
o do the sorting
o stop the stopwatch and read the time elapsed
In a non-real-time environment (as in your Windows PC) time measurements will not be accurate. Therefore you should relate the measurements e.g.:
J2C++ Mandatory Assignment 3 Spring 207
Data Structures and Algorithm Generic Dynamic Array
time_relation = time(500.000 elements)/time(10.000 elements)
and relate the the corresponding O for the algorithm used e.g.:
O(n2) -> O_relation = (500.000/10.000)2
Compare the time_relation and the O_relation.
Do the calculations lead to expected results? (Eventually why not?)
Tools
ls:
o Selection sort
o Quick sort
o Random.h (0 … 231 -1) [The standard random generator has max. span 0…215-1]
To find corresponding O’s please consult the book Data Structures with C++
o An example in how to use above
Test
The test should be divided into two
1. Test insert and retrieve and delete of a number of elements anywhere in the list
2. Test the efficiency of your sorting algorithm. Estimate the O() with proper documentation (ref. Algorithm Efficiency above)
Documentation
All classes and functions must be documented in such a way that any other software developer will be able to use your solution.
The names of the developers must be stated in the head of all classes together with dates and revision number.
All prototypes of the functions (in header file) should have stated the pre – and post
|
|
|
|
|
Wow - you're not even attempting to disguise this "do my assignment for me" request.
You've got a lot of gall (and probably no future in software development).
David Anton
http://www.tangiblesoftwaresolutions.com
C++ to C# Converter
C++ to VB Converter
C++ to Java Converter
Instant C#: VB to C# converter
Instant VB: C# to VB converter
Instant C++: convert VB, C#, or Java to C++/CLI
Java to VB & C# Converter: convert Java to VB or C#
|
|
|
|
|
|
I'd like to save the HDC content obtainbed from GetPrinterDC (which has just one ellipse drawn on it) to a .EMF file, I've tried with a window HDC and it works fine, but the same do not occurs with the printer related HDC.
The function I've used for tests is below.
Thanks for any tip !
void PrintStuff( HWND hWndParent )
{
HDC hDC;
DOCINFO di;
hDC = GetPrinterDC();
InitDocStruct( &di, "MyDoc");
StartDoc( hDC, &di );
StartPage( hDC );
HPEN newPen = CreatePen(PS_SOLID,50,RGB(0,0,0));
HPEN oldPen = (HPEN)SelectObject(hdc,newPen);
Ellipse(hdc, 0, 0, 200, 200);
******** I'D LIKE TO SAVE HDC TO AN EMF HERE
EndPage( hDC );
EndDoc( hDC );
DeleteDC( hDC );
}
|
|
|
|
|
I don't believe that will necessarily work with a printer DC, since the GDI commands sent
to the DC may go right through to the driver. So, for example, you can't read back a bitmap
from a printer DC.
Can you draw to the metafile DC?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
The interest is, as you said, to read back a bitmap\emf from the printer DC, because the real context that my code will work in is inside a Printing API (EndPage probably) hook. The final idea is to read details about what's being printed, these details must be addressed at the EMF level. This is part of my requirements.
If the EMF can't be generated just from the Print HDC, I'll have more problems that I could imagine initially.
Anyway, thanks a lot for the prompt reply.
|
|
|
|
|
I personally would put the rendering code in a separate function/method that gets passed a DC.
That way the drawing code only needs to be written once....you can call the method with a metafile DC,
a printer DC, etc.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Yes, this is the way if I was writing a regular app, but I'm writing a completely different thing: a hook at a lower level, so everything I have is a Printer HDC received from an unknown app
Thanks again.
|
|
|
|
|
hi guys
does any body know or have some easy and good sample or tutorial about system api hooking, with out PE hooking and assembly,
tried to search for but could nt get an easy to understand one.
may be the messagebox
like my doubt is say i run my app which will replace hook the messagebox of user32.dll to my own defined messagebox, which will be global, so any app tht calls messagebox pre or post app after my hook should call my own messagebox
is it needed to write a driver to hook system apis,
Thanks
S
|
|
|
|
|
so no one here knows bout hooking?????????????/
|
|
|
|
|
God. What a rude little oik you are. Did you not get the memo that this is a volunteer only site and that people with rude little attitudes just end up getting ignored? BTW - hooking has a different meaning as well. You may want to change that little bit of attitude.
|
|
|
|
|
thanks will keep in mind in future, now please the solution
|
|
|
|
|
|
|
I am trying to parse dbf file. I was not able to open it via ODBC
so I do direct reading from it. It is dBase 7
I have problem with double data type
Structure description said
"O" Double 8 bytes - no conversions, stored as a double.
http://www.dbase.com/KnowledgeBase/int/db7_file_fmt.htm
But it is not IEEE Standard 754 i guess
and I just wonder how this double is stored in memory
and how to read it or decode.
For example:
-0.48 is stored:
21 47 AE 1F FF FF FF C0
and +0.48 is stored:
DE B8 51 E0 00 00 00 C0
It is almost like IEEE 754, numbers bigger than 1 works fine
41.84 is
44 EB 85 20 00 00 00 40
if read in order (last byte is first)
40 44 EB 85 20 00 00 00
but where is the different?
Does anyone know what I am talking about
Is there any memory specification or library for floating point in dBase?
Thank you
viliam
|
|
|
|