|
Ravi Bhavnani wrote:
Just override OnMove() and OnSize().
that would require having access to the source code of the app I want to launch, which i don't.
thanks anyway
|
|
|
|
|
Who I have write the code on voice chat between a client and a server not p2p.I have some question to ask
|
|
|
|
|
hi everyone. i have some simple questions for the cp windows pros out there
im developing an MFC app, and basically the area where my questions
for advice apply, is my startup functionality.
i need to
a) put the app into startup, and remove the app from startup on the fly.
im hoping someone can point me to a nice, easy object or api to provide this functionality to me. would really appreciate some direction here...
b) I have a dialog app. got my Capp class and all the good stuff that comes w/ it. I basically need to know in my code before the window is drawn, that my app was started from system startup, as opposed to being ran by the user so i can do some extra stuff in this case. On startup i'd like to pass some special parameters to the app so it can act a little different for me on a system startup run. any suggestions here would be great.
thanks in advance !
todo....
:: insert inspirational text here ::
|
|
|
|
|
Add your application path under following resitry key
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
first check it sing Regedit.exe utility ( comes with windows) U can add path using Registry related APIs like RegOpenKeyEx and RegsetValueEx
this will add ur app to startup
hmmm.. for second thing wat u can do is that write the system time to registry when ur app starts.. but first check that since when is ur system up and if the value there in registry is older than that it means it is being started at system startup otherwsie by some user.
Cheers
Muhammad Shoaib Khan
http://geocities.com/lansolution
|
|
|
|
|
b) When you update the aforementioned registry key with your application, add a command-line parameter. When the user starts your application from Start/Run, or from within Windows Explorer, no such command-line parameter will be provided.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
cool!
i was thinking command line params too, i didnt know though the registry provided me w/ the startup functionality, and so i didnt know how id be able to pass em
i was wishing desperatly last night for a windows version of rc.d/rc.local lol
thanks alot for the help guys, you put me on track now , and i should be able to finish up my app 2 night.
todo....
:: insert inspirational text here ::
|
|
|
|
|
Hi,all
i wanna to get the local printer status, and i also read msdn Q160129 , but the informaiton got is not enough and real-time which is the status of system printer,not physical printer, can anybody tell me how to get the physical printer status by parallel port programming?
Thx
Rapo Lee
|
|
|
|
|
I have some code here that is supposed to swap bytes in a word. For some reason it has a bug in it in the ByteSwap2 function or the ByteSwap_c function. It's getting very frustrating and time is running out. Can anyone help me..?
The main is on the bottom of the code.
Thanks.
B
void ByteSwap2_c(int n, short *a)
{
int i;
for (i=0; i<n; ++i) {
short int tmp=a[i];
short int pmt;
((char*)(&pmt))[1]=((char*)(&tmp))[0];
((char*)(&pmt))[0]=((char*)(&tmp))[1];
a[i]=pmt;
}
}
#include "stdio.h"
void ByteSwap2_c(int n, short int *a);
void ByteSwap2_asm(int n, short int *a);
void ByteSwap2(int n, short int *a)
{
int i;
short *b = (char *) malloc ( n * sizeof(short int));
for (i=0; i<n; ++i)
b[i]=a[i];
ByteSwap2_c(n,b);
for (i=0; i<n; ++i) {
if (a[i] != b[i]) {
printf("a[%d] (0x%04X) != b[%d] (0x%04X)\n",i,a[i],i,b[i]);
exit(1);
}
}
free(b);
}
void test2(int n, short int *a, short int *b)
{
int i;
ByteSwap2(n,a);
for (i=0; i<n; ++i) {
if (a[i] != b[i]) {
printf("a[%d] (0x%04X) != b[%d] (0x%04X)\n",i,a[i],i,b[i]);
exit(1);
}
}
}
int main()
{
static short int a[4]={0x0304, 0x8999, 0xef12, 0x5678};
static short int b[4]={0x0403, 0x9989, 0x12ef, 0x7856};
test2(4,a,b);
printf("all tests pass\n");
}
|
|
|
|
|
If you are looking for a simple byte swap.
You could try
void _swab( char *src, char *dest, int n );
in <stdlib.h>
hope this helps
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Sirrius wrote:
For some reason it has a bug...Can anyone help me..?
While you'll get great advice here (assuming you ask the right question), folks are not too fond of bug hunts. What exactly is the problem? What are you trying to do? Are there compiler/linker errors? Have you single-stepped through the code to see what is happening at run-time?
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Hi,
I have a sdi program. In the view's OnCreate function, I create a toolbar and a browser control in the view's client area. Now, if the view loses focus, the toolbar is inactive(grey). But I want the toolbar always active. How to do now?
Thanks.
Yu Hailiang
|
|
|
|
|
Handle
UPDATE_COMMAND_UI message for your particular toolbar.
CFrameWnd::OnUpdateButtonsInYourToolbars(CCmdUI* pCmdUI)
{
pCmdUI->Enable(true);
}
Hope this helps
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Thanks. I find another way in MSDN to solve the problem.
To allow ON_UPDATE_COMMAND_UI handlers to work for other status bar panes and for toolbar buttons, you must derive new control bar classes and implement a message handler for WM_IDLEUPDATECMDUI. This is necessary because the default control bar implementations of OnUpdateCmdUI() assume the parent window is a frame window. However, it doesn't do anything but pass the parent window pointer on to a function that only requires a CCmdTarget pointer. Therefore, you can temporarily tell OnUpdateCmdUI() that the parent window pointer you are giving it is a CFrameWnd pointer to meet the compiler requirements. Here's an example:
LRESULT CMyToolBar::OnIdleUpdateCmdUI(WPARAM wParam,LPARAM lParam)
{
if (IsWindowVisible())
{
CFrameWnd* pParent = (CFrameWnd*)GetParent();
if (pParent)
OnUpdateCmdUI(pParent, (BOOL)wParam);
}
return 0L;
}
|
|
|
|
|
Your codes is neccessary if your handler is not in the CMainFrame (derrived from CFrameWnd).
If your handler is the in CMainFrame. It should be okay of just handling the OnUpdateCmdUI.
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
I had an SDI with some dialogs and through user inputs in the dialogs, i show my graphics in the SDI view using OpengGL rendering.But I was wondering why windows doesn't auto-refresh the view for me because as my dialog is in front of my view, whenever the dialog is shifted or moved, a white patch of the dialog'outline will overlap onto my graphics in the view... I do not know how to refresh my view again in this case...can anyone help?
|
|
|
|
|
You will have to re display ure image in this cse .Use OnPaint event handler for this.
No Worries!
|
|
|
|
|
thanx for replying. Can u elaborate on how i can re-display my image properly? My OpenGl coding was done in the dialog.cpp, then i should code the re-display in the view class OnPaint handler? I tried the following in the View class ONPAint message handler but unable to work:
Void ProjectView:: OnPaint()
{ CPaintDC dc(this);
InValidate();
UpdateWindow();
}
|
|
|
|
|
I need a real function that will create real random numbers, it should be able to be used in old-style c++, you know, console c++. lol
<marquee>Universal Project... Soon to be a .net
|
|
|
|
|
This is a small one to generate a seed.
void MyRandomize()
{
static unsigned int t = 0;
SYSTEMTIME st;
GetSystemTime( &st );
unsigned i = (unsigned int)st.wMilliseconds;
i+=t++;
srand(i++);
}
then call the:
rand() % /*number*/ ;
from <math.h> "I think"
APe
|
|
|
|
|
Not sure exactly what this is doing, but it appears way too complicated. Calling srand(time(NULL)) is sufficient for seeding the random number generator.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
In the code below, the non-recursive version contains less
code than the recursive version one. And the non-recursive
version is also much clear than the recursive version.
We can always use loops to replace recursions, and besides,
many bugs are due to functions calling themselves.
I still have no idea how do we benefit from rescursion?
Can somesone please make an real world example of how do we
benefit from recursion?
Is recursion new addition to C++? Is there recursion in C?
Thanks.
// non recursive version
<br />
#include <iostream><br />
using namespace std;<br />
<br />
int main()<br />
{<br />
unsigned int num;<br />
unsigned long fact = 1;<br />
<br />
cout << "Please enter the n: ";<br />
cin >> num;<br />
<br />
for(int j = num; j > 0; --j)<br />
{<br />
fact *= j;<br />
}<br />
<br />
cout << "The factorial of n is: " << fact << "." << endl;<br />
<br />
return 0;<br />
}<br />
// recursive version
<br />
#include <iostream><br />
using namespace std;<br />
<br />
unsigned long factfunc(unsigned long);<br />
<br />
int main()<br />
{<br />
unsigned int num;<br />
unsigned long fact = 1;<br />
<br />
cout << "Please enter the n: ";<br />
cin >> num;<br />
<br />
fact = factfunc(num);<br />
cout << "The factorial of n is: " << fact << "." << endl;<br />
<br />
return 0;<br />
}<br />
<br />
unsigned long factfunc(unsigned long n)<br />
{<br />
if(n >1)<br />
return n * factfunc(n-1);<br />
else <br />
return 1;<br />
}<br />
<br />
|
|
|
|
|
You're confusing yourself because your example is one that can be simplified down to a loop. (This is called tail recursion optimization because the work happens at the tail end of the code.)
Not all recursive algorithms fit this category. The recursion I write most often is travering a tree - not necessary a literal tree control, sometimes navigating a file system, sometimes things like "do something in this HTML document, plus all its subframes and sub-iframes, and their subframes..."
--Mike--
Ericahist | CP SearchBar v2.0.2 | Homepage | RightClick-Encrypt | 1ClickPicGrabber
Pinky, are you pondering what I'm pondering?
I think so Brain, but if we shaved our heads, we'd look like weasels!
|
|
|
|
|
Okay, you are right, my example is one that can be simplified
down to a loop. But isn't most of the recursions can be simplified
down to a loop? So what is the benefit of using recursive algorithm?
Would you kindly make an example for me which the one that can
not be simplified to a loop?
Thanks.
|
|
|
|
|
Alex Ngai wrote:
Would you kindly make an example for me which the one that can
not be simplified to a loop?
Recursive algorithms are best applied to recursive data structures. As Mike has pointed out, manipulating a tree (which is a recursive data structure) is best done using small recursive functions. Other classic recursive algorithms are parsing, solving mazes, the Knight's Tour and the 9-Queens problem. See any classical CS text for descriptions of these.
That being said, remember that every recursive algorithm can be implemented in a non-recursive manner. In fact that's how all recursivs algorithms are executed in machine code! Converting a recursive algorithm to a non-recursive one basically requires you to manually maintain a stack (which is nothing more than a LIFO collection of state).
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Just because a loop has been eliminated does not make the algorithm more beneficial. All recursive algorithms can be converted to iterative algorithms. There are pros and cons to doing so. Some benefit the programmer, others benefit the computer.
Recursion seems a natural fit when a larger problem can be broken down into one or more smaller problems, using solutions to the smaller problems to solve the original problem. If a few basic rules are followed, recursion is easy (relatively speaking) and practical: 1) Base cases that can be solved without recursion; 2) Making progress towards a base case; 3) Design rule that assumes all recursive calls work; 4) Compound interest rule never duplicates work by solving the same instance of a problem in a separate recursive call.
Consider the recursive implementation of Fibonacci numbers:
long Fib( int N )
{
if (N <= 1)
return 1;
else
return Fib(N - 1) + Fib(N - 2);
}
It seems innocent enough, but for values of N > 30, it's inefficient. Its running time grows exponentially because of all the redundant work (compound interest rule). To compute Fib(N), there is one call to Fib(N - 1) and Fib(N - 2). However, since Fib(N - 1) recursively calls Fib(N - 2) and Fib(N - 3), there are actually two separate calls to Fib(N - 2). Similarly, Fib(N - 3) is computed three times, Fib(N - 4) is computed five times, Fib(N - 5) is computed eight times, etc. These results are thrown away and recomputed later on.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|