|
You have to return a value in the bool-Method.
return true;
Hardy.
|
|
|
|
|
Hello,
void verticalwin();
void horizontalwin();
void diagonalwin1();
void diagonalwin2();
I think these functions should also return boolean datatypes, like determineDraw function.
If you will do this, you can just check if any of these functions returned a true value. And hence, determine if there has been a winner.
maybe like this:
bool ConnectFour::playTurn()
{
// TODO:
// Get the column input here
return (verticalwin() || horizontalwin() || diagonalwin1() || diagonalwin2());
}
|
|
|
|
|
Hey guys...How would I go about writing this method in the .cpp file?
MOSTLY THE BOOL METHODS I AM HAVING TROUBLE WITH
This is what I have for the Menu.h file
#ifndef CONNECTFOUR_H
#define CONNECTFOUR_H
#include "Menu.h"//includes Menu header file
using namespace std;
class ConnectFour
{
private:
//date members
int board[12][13];
int numChips[7];
public:
ConnectFour();
//default constructor
bool playTurn();
//this method give a player the opportunity to place a chiop inot the board
void displayBoard();
/*this method places 2 different kinds of markers on the board(one for each player)
and displays some kind of marker for empty slots.*/
void dropChip();
//this method places a chip into the board and looks for a winner
void checkWinner();
//this method calls 4 helper functions to check the possiable 4 winning moves.
void verticalwin();
//this method checks to see if 4 colors match to win the game vertically
void horizontalwin();
//this method checks to see if 4 colors match to win the game horizonatally
void diagonalwin1();
//this method checks to see if 4 colors match to win the game diagonally one way
void diagonalwin2();
//this method checks to see if 4 colors match to win the game diagonally the second way
bool determineDraw();
//this method determines if the game is a draw
};
#endif //ends ConnectFour.h
All I have left for my ConnectFour.cpp is ...
#include <iostream>
#include <string>
#include "ConnectFour.h"//includes ConnectFour header file
//default constructor will initialize zero to the data private members (variables)
ConnectFour::ConnectFour()
{
board[12][13] = 0;
numChips[7] = 0;
for(int i=0; i < 12; i++)
{
for(int j=0; j<13; j++)
{
board[i][j] = 0;
}
}
for(int i=0; i<7; i++)
{
numChips[i]= 0;
}
}
bool ConnectFour::playTurn()
{
}
|
|
|
|
|
So, what exactly is the problem? Does code compiles? or what?
ARSALAN MALIK
|
|
|
|
|
Here's a bit of code that automates the VC6 debugger, what's the VC7 version look like ?
void Debug()
{
HRESULT hResult;
DSSharedObjects::IApplicationPtr pIDevStudioApp;
DSDebugger::IDebuggerPtr pIDebugger;
DSSharedObjects::IDocumentsPtr pIDocuments;
DSDebugger::IBreakpointsPtr pIBreakpoints;
_bstr_t bstrTemp;
if(SUCCEEDED(hResult = pIDevStudioApp.CreateInstance(__uuidof(
DSSharedObjects::Application))))
{
pIDevStudioApp->PutVisible(VARIANT_TRUE);
if(((pIDocuments = pIDevStudioApp->GetDocuments()) != NULL) &&
((pIDebugger = pIDevStudioApp->GetDebugger()) != NULL) &&
((pIBreakpoints = pIDebugger->GetBreakpoints()) != NULL))
{
bstrTemp = _T("Program.exe");
pIDocuments->Open(bstrTemp);
pIDebugger->Go();
...
}
}
}
|
|
|
|
|
void Debug()
{
HRESULT hResult;
CComPtr<envdte::_dte> spIDevStudioApp;
CComPtr<envdte::window> spMainWindow;
CComPtr<envdte::debugger> spIDebugger;
CComPtr<envdte::breakpoints> spIBreakpoints;
CComPtr<envdte::_solution> spSolution;
CComPtr<envdte::project> spProject;
CComBSTR bstrTemp1 = _T("VisualStudio.DTE.7.1");
CComBSTR bstrTemp2;
if(SUCCEEDED(hResult = spIDevStudioApp.CoCreateInstance(bstrTemp1,NULL,
CLSCTX_LOCAL_SERVER)))
{
if(SUCCEEDED(hResult = spIDevStudioApp->get_Debugger(&spIDebugger)))
{
spIDevStudioApp->get_MainWindow(&spMainWindow);
spMainWindow->put_Visible(VARIANT_TRUE);
spIDevStudioApp->get_Solution(&spSolution);
bstrTemp1 = _T("C:\\Temp");
bstrTemp2 = _T("Program.sln");
spSolution->Create(bstrTemp1,bstrTemp2);
bstrTemp1 = _T("Program.exe");
spSolution->AddFromFile(bstrTemp1,VARIANT_FALSE,&spProject);
spIDebugger->get_Breakpoints(&spIBreakpoints);
spIDebugger->Go(VARIANT_FALSE);
}
}
}
|
|
|
|
|
I want to know which method can be applied to communicate between two computers belong to the different domain besides SOCKET
|
|
|
|
|
What's wrong with sockets?
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
I want to if two computers belong to different domains and A has authority of administrator of B,whether A can write data in the shared writable directory of B
|
|
|
|
|
If A has administrator authority of B, then A can write to a shared writable directory on B.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
i have a uni assignment that requires multi-threading. I want to call a function to begin the thread that takes several parameters. I have found examples on how to pass single parameters and tried to pass several param's in the same manner.
I am using _beginthread(functionName, 0, parameters);
Does anyone know of a way that i may be able to pass several parameters to this thread??
Thanks
Steve
|
|
|
|
|
err... make a struct that holds them and past that? Thats what I do.
|
|
|
|
|
|
HHOOK hKeyHook;
__declspec(dllexport)
LRESULT CALLBACK KeyEvent (int nCode,WPARAM wParam, LPARAM lParam)
{
if( (nCode= HC_ACTION) && ( (wParam = WM_SYSKEYDOWN) || (wParam = WM_KEYDOWN) ) )
{
KBDLLHOOKSTRUCT hooked *= *((KBDLLHOOKSTRUCT*)lParam);
DWORD dwMsg;
dwMsg += hooked.scanCode <<16;
dwMsg += hooked.flags << 24;
char lpszName[0x100] = {0};
lpszName[0] = '[';
int i= GetKeyNameText(dwMsg,(lpszName+1),0xff) +1;
lpszName[i] = ']';
printf(lpszName);
}
I want to hook the keyboard but the KBDLLHOOKSTRUCT struct keeps giving error even with the intelisense showing the members of the struct.
I dont really get it
Here are the errors
error C2065: 'KBDLLHOOKSTRUCT' : undeclared identifier
error C2059: syntax error : ')'
among other stupid errors.
Can anyone help me?
Tks in advance
|
|
|
|
|
This line is incorrect:
<br />
KBDLLHOOKSTRUCT hooked *= *((KBDLLHOOKSTRUCT*)lParam);<br />
Change it to:
<br />
KBDLLHOOKSTRUCT* hooked = (KBDLLHOOKSTRUCT*)lParam;<br />
This should clear up the errors.
Regards,
-John
|
|
|
|
|
Also, your IF statements are goofed up...
Which immediately lets me know you did not turn your warning level to 4 or you are ignoring WARNINGS during your mopile, because the compiler would otherwise warn you about "Assignment within conditional expression".
Try changing this:
if( (nCode= HC_ACTION) && ( (wParam = WM_SYSKEYDOWN) || (wParam = WM_KEYDOWN) ) )
to this:
if( (nCode == HC_ACTION) && ( (wParam == WM_SYSKEYDOWN) || (wParam == WM_KEYDOWN) ) )
I usually try to place the contant on the left hand side, because such code will NOT compile if you made such a similar error:
if( (HC_ACTION == nCode) && ( (WM_SYSKEYDOWN == wParam) || (WM_KEYDOWN == wParam) ) )
Since your IF is wacked, you are probably processing messages you should not be, at times.
|
|
|
|
|
I have figured out how to spy on an apps menu for remote control, but cannot determine how to do the same for the apps context menus.
How do you determine the commands sent from a context menu?
|
|
|
|
|
You can call TrackPopupmenu with TPM_RETURNCMD , and it'll return the menu item id. You may also want to take a look at TPM_NONOTIFY .
--
Arigato gozaimashita!
|
|
|
|
|
I actually need a command I can track in Spy++ don't I? I'm actually coding in C++. From what I can tell, these are C# functions.
As an example of what I need to do, I want in my program, to fire off a simulated right click to say a notepad window, and command "paste" at a specified position using the context menu.
The program I will actually be doing this with does not have a standard menu command for what I need to do, and this is only available in a context menu.
|
|
|
|
|
I misread the original post. My appologies.
--
Arigato gozaimashita!
|
|
|
|
|
No Problem!
I appriciate the attempt, but can anyone tell me if this is even do-able? And if so, how?
|
|
|
|
|
Have you had a look at SetWindowsHookEx and its option WH_SYSMSGFILTER ?
WH_SYSMSGFILTER
Installs a hook procedure that monitors messages generated as a
result of an input event in a dialog box, message box, menu, or
scroll bar. The hook procedure monitors these messages for all
applications in the same desktop as the calling thread. For more
information, see the SysMsgProc hook procedure.
--
Arigato gozaimashita!
|
|
|
|
|
No, I have not, but will!
My main goal was to find out the parameters necessary to send to replicate the mouse click of the actual context menus menu item. If these will work, then great!
|
|
|
|
|
I have a subclassed listctrl in a dialog. In the listctrl class I handle the WM_MOUSEMOVE msg. When I move the mouse over the listctrl I get the WM_MOUSEMOVE msgs but only when I don't have any mouse button pressed. As soon as I get the WM_LBUTTONDOWN msg the WM_MOUSEMOVE messages stop coming until I let go of the mouse button. Why? I want to get the WM_MOUSEMOVE msgs also when I have the mouse button down, and I know I should get them but why don't I? Also the WM_LBUTTONUP doesn't come unless I double click the control.
Suggestions welcome.
|
|
|
|
|
ski2sky wrote:
As soon as I get the WM_LBUTTONDOWN msg the WM_MOUSEMOVE messages stop coming until I let go of the mouse button. Why?
This is because of the way the list control processes mouse messages. When it receives a WM_LBUTTONDOWN , it goes into a local message loop, checking for mouse messages and acting on them without passing them to DispatchMessage() . This means that the message does not go through the normal message processing and consequently you don't see them.
ski2sky wrote:
Also the WM_LBUTTONUP doesn't come unless I double click the control.
This is because of the same reason. The local message loop processes the WM_LBUTTONUP message without dispatching it, so you don't get it. Windows sends the following sequence of messages for a double click:
WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK WM_LBUTTONDOWN So the local message handler exits when the first WM_LBUTTONUP is received, so your application will get the second one as there is no further WM_LBUTTONDOWN message to start the local message handler.
ski2sky wrote:
I want to get the WM_MOUSEMOVE msgs also when I have the mouse button down
The only way I can see to get around this is to install a WH_GETMESSAGE hook on your thread.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|