|
You can not pass a parameter to a button event handler. You have to gather the data in the handler - for example by querying textboxes/checkboxes/etc in your handler method.
|
|
|
|
|
thanks pasztorpisti, will try that.
|
|
|
|
|
Does your COptionDBTransport inherit from CCmdTarget (or a derived type of it)?
Have you included (even if indirectly) <afxwin.h>? (ON_BN_CLICKED is defined in another header)
|
|
|
|
|
Thanks, Yes Have inculded the header file.
|
|
|
|
|
Then I'm totally baffled. Recommend you compile with /P (preprocess to file) and then, from a command-prompt try to compile that generated file. It should contain #line directives and such making it (hopefully) obvious why it fails.
++luck;
|
|
|
|
|
This is a code for snake game using dev c++. now i would like to know how can i create:
- a new snake (2nd snake) which eats the apple(so called apple) on its own..
- which means.. 1st snake will be handled by user. while the 2nd snake works on its own. and both snake fights to get the apple.
can any1 suggest me how can i do this.
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
typedef struct tailpos
{
int x;
int y;
struct tailpos *next;
struct tailpos *prev;
}
tail;
int d=4;
class snake
{
public:
int foodx,foody;
HANDLE console_handle;
COORD cur_cord;
tail *start,*current,*newtail;
snake();
void insert(int x , int y);
void draw();
void drawWall();
void move();
bool collision();
void drawfood(int x=0);
};
snake::snake()
{
start = NULL;
current = NULL;
newtail = NULL;
console_handle=GetStdHandle( STD_OUTPUT_HANDLE );
foodx=12;
foody=14;
}
void snake::drawWall()
{
cur_cord.X=0;
for(int y=0;y<=30;y++)
{.....
}
void snake::drawfood(int x)
{
tail *tmp;
tmp=start->next;
if(x==1) .....
}
void snake :: insert(int x , int y)
{
if(start == NULL)
{
newtail = new tail;
newtail->x=x;
newtail->y=y;
newtail->next=NULL;
newtail->prev=NULL;
start=newtail;
current=newtail;
}
else
{
newtail = new tail;
newtail->x=x;
newtail->y=y;
newtail->next=NULL;
newtail->prev=current;
current->next=newtail;
current=newtail;
}
}
void snake::move()
{
tail *tmp,*cur;
tmp =current;
while(tmp->prev!=NULL)
{
tmp->x=tmp->prev->x;
tmp->y=tmp->prev->y;
tmp=tmp->prev;
}
if(d==1)
start->y--;
if(d==2)
start->y++;
if(d==3)
start->x--;
if(d==4)
start->x++;
}
bool snake::collision()
{
tail *tmp;
tmp=start->next;
while(tmp->next!=NULL)
{
if(start->x == tmp->x && start->y == tmp->y)
return true;
tmp=tmp->next;
}
if(start->x == foodx && start->y == foody)
{
insert(foodx,foody);
drawfood(1);
}
for(int x=0;x<=30;x++)
{
if(start->x == x .....
}
void snake::draw()
{
tail *tmp , *last;
tmp=start;
last = current;
while(tmp!=NULL)
{
cur_cord.X=tmp->x;
cur_cord.Y=tmp->y;
SetConsoleCursorPosition(console_handle,cur_cord);
cout << "#";
tmp=tmp->next;
}
cur_cord.X=last->x;
cur_cord.Y=last->y;
SetConsoleCursorPosition(console_handle,cur_cord);
cout << ' ';
cur_cord.X.....
}
int main()
{
......
}
getch();
return 0;
}
|
|
|
|
|
Hello,
I'm trying to adapt some Microsoft code (member.cpp in Detours) for my case
( I just want to replace
void CMember::Target(void)
by
QString QString::fromAscii(const char *str, int size):
MS Code :
class CMember
{
public:
void Target(void);
};
void CMember::Target(void)
{
printf(" CMember::Target! (this:%p)\n", this);
}
class CDetour
{
public:
void Mine_Target(void);
static void (CDetour::* Real_Target)(void);
};
void CDetour::Mine_Target(void)
{
printf(" CDetour::Mine_Target! (this:%p)\n", this);
(this->*Real_Target)();
}
void (CDetour::* CDetour::Real_Target)(void) = (void (CDetour::*)(void))&CMember::Target;
My code :
class CDetour
{
public:
QString Mine_Target(const char *str, int size);
static QString (CDetour::* Real_Target)(const char *str, int size);
};
QString CDetour::Mine_Target(const char *str, int size)
{
printf(" CDetour::Mine_Target! (this:%p)\n", this);
(this->*Real_Target)(str, size);
}
QString (CDetour::* CDetour::Real_Target)(const char *str, int size) = (CDetour::*)(const char *str, int size)&QString::fromAscii;
But I get :
error C2059: syntax error: '< tag >::*'
for the last line
Why ?!
Thanks.
Edit :
If I do :
QString (CDetour::* CDetour::Real_Target)(const char *str, int size) = (QString(CDetour::*)(const char *str, int size))&QString::fromAscii;
I get :
error C2440: 'type cast' : impossible to convert from 'QString (__cdecl *)(const char *,int)' into 'QString (__thiscall CDetour::* )(const char *,int)'
modified 29-Jan-15 7:21am.
|
|
|
|
|
The first definition can't be correct. Regarding the second one, for me it looks like the QString::fromAscii isn't defined as a member method. Have you tried creating an own class like the CMember one and using this class' function in the function pointer? Once you get this working you can call QString::fromAscii directly from the inner function.
The good thing about pessimism is, that you are always either right or pleasently surprised.
|
|
|
|
|
But QString::fromAscii is a Static Public Members from Qt :
QString Class Reference
I thought I just had to replace CMember by QString and Target by fromAscii from the MS sample...
|
|
|
|
|
You're trying to cast to (CDetour::*) , which isn't a valid type definition. It is only a part of a member function pointer definition and doesn't make sense without the parameter list and return type.
Look at the last line in the MS code example: &CMember::Target is the address of a member function pointer. You can only cast a member function pointer to a member function pointer of a differentsimilar type, in this case (void (CDetour::*)(void)) , which is a member function of the class Detour (that is what CDetour::* means) with an empty parameter list (the (void) bit) and a void return type (the preceding void )
The compiler error is based on the fact that the compiler doesn't recognize (CDetour::*) as part of a function pointer definition without the preceding return type, and there is no other valid interpretation.
Your edit version looks better: the compiler does recognize the member function pointer cast correctly, it just doesn't want to accept that cast for some reason. One possible problem could be the calling convention being used: your class definition generated the member function using __thiscall , whereas the QT function was defined as using __cdecl . You may want to check your calling convention settings.
[edit]fixed my statement about function pointer casts in light of what I said in the last paragraph[/edit]
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
We use the CMFCRibbonBar defined from a resource file. We have a recent files list appearing to the right of the main menu (which contains New, Open, Print etc). The problem is that the elements are too widely spaced, which stands out as it does not match the other menus. Anyone know how to fix this?
For our Print sub-menu I was able to get 'correct' spacing of the menu items by editing the ribbon resource file and setting the <always_description> value to FALSE for each item. Unfortunately I cannot do this for file list items, and I cannot get each recent file list button using CMFCRibbonBar::FindByID(ID_FILE_MRU_FILE1+index) as it returns NULL.
|
|
|
|
|
I want to control the device with my programm.
How to get info from video capture card PEXHDCAP with no SDK or similar. I think I can only dissassemble the software / driver like hackers do.
Is there any expert who can find out how to control this device with own software ?
|
|
|
|
|
Is there any expert who can find out how to control this device with own software ?
While there certainly are, it could be between quite and very expensive. As reverse engineering (even for compatibility) is illegal in some jurisdictions, the one(s) performing it would have to be in a place where it's allowed. Say Europe. Then you have to factor in the very specialized skill-set and expertise in the area, and we could easily look at five digits USD.
IMO the company producing the card should at a minimum provide complete driver(s) for it, better yet complete documentation. As patented stuff like H.264 is included, they may themselves be prevented by NDA's to provide neither, making the product a burden on the environment (read: landfill ).
Anyway, my advice would be to first contact the company producing it. If that fails, I'd advice against even considering hiring someone to do the work unless you had serious dough just lying around. Better to get a simple card with working software and append x264 to the pipeline.
++luck;
|
|
|
|
|
Hi Mike
thanks for answering
This card can be controlled with standard DirektShow routines some people answered me.
But is this fast enough ?
And all features programmable ?
I will see ...
greets Peter
|
|
|
|
|
Dear sir/madam,
Please share any example online website code using c++ language .I need it in my entry level engineer interview.Please help me out in this regard.
Rathnasri Adepu
|
|
|
|
|
If you cannot answer your interview questions by your own efforts, then the answers have no value.
|
|
|
|
|
True.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
|
|
|
|
|
Member 11393333 wrote: I need it
No. What you need is a different kind of job. That would be better both for you and your prospective employee.
Seriously, ask yourself this question: what is the point of applying to a job with requirements you cannot hope to meet? Even if someone were to provide you with the example you ask for, it's likely the employee will realize it's not your work, and that you cannot be trusted. In the unlikely case he hires you anyway, you won't be able to complete any task, and you'll be fired.
Better spend your efforts in finding a job that fits your abilities!
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
Dear all:
I have two touch screens and dual monitor, I try to match touch screen for each monitor in windows xp.
I can do it in mirror mode and extended mode, but failed in span
mode.
I use the EnumDisplayMonitor to get the monitor count, but the monitor count is 1 in span mode.
How do I know my dual diplay in span mode and get the monitor count?
best regards, Victor
modified 28-Jan-15 21:59pm.
|
|
|
|
|
Hi All,
I am writing a program to control some I/O card under Win8.1 environment, however, initialisation winio always fail. There is no problem under WinXP or Win7, so I guess it is caused by Win8.1 UEFI blocked the WINIO.
Is there anyone who can give me a solution?
Thanks
Eric
|
|
|
|
|
It is unlikely that anyone can give a solution, unless you provide a lot more information. Where does the failure occur, what are the conditions, what error status or message do you see ... ?
|
|
|
|
|
When I perform
DWORD dwMemVal;
bool bResult;
HANDLE hPhysicalMemory;
PBYTE pbLinAddr;
// Call InitializeWinIo to initialize the WinIo library.
ShutdownWinIo();
bResult = InitializeWinIo();
the bResult keeps 0, so I cannot initialize WinIO
However, I tried to create a virtual machine with WinXP installed, using the same sourecode without any problem. Thus, I guess it is caused by Win8.1 UEFI which protect the BIOS controlled by WinIO.
Would there be anyone who can help me to fix this problem? Thanks a lot for any help.
|
|
|
|
|
|
Hi
I tried to put the same program in Win8.0 and it works without the need to sign-up WINIO.
I would like to know what is the different between Win8 and 8.1?
Thanks
|
|
|
|
|
Hi, in a windows CE platform, I tested BitBlt() function,
I found it will take about 400 millisecdons to do:
MemBoard.CreateCompatibleDC(&dc);
bmpDashBoard.LoadBitmap( IDB_SCREEN_IMP );
pOldBmp = (CBitmap*)Memboard.SelectObject(&bmpBoard);
...
MemDC.CreateCompatibleDC(dc);
..
MemDC.BitBlt(0,0, 800,600,&Memboard, 0, 0, SRCCOPY);
is there anyway to speed up BitBlt() function?
|
|
|
|