|
void (__stdcall BsCard:: *intHdl)(HANDLE hCHA_DIG, INT_RESULT* pintResult)
MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.
|
|
|
|
|
Make the method static . This has obvious limitations: if you need to circumvent them, check Mike Dunn's VC++ FAQ[^], §6.1.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Here's some example code that can at least point you in the right direction:
class BsCard
{
public:
typedef void (BsCard::*FuncPtr)(HANDLE hCHA_DIG, INT_RESULT* pintResult);
void InterruptHandler(HANDLE hCHA_DIG, INT_RESULT* pintResult);
bool IntEnable(int, FuncPtr){return true;};
int InitInterrupt1();
int InitInterrupt2();
int m_hCard;
};
int BsCard::InitInterrupt1()
{
void (BsCard::*intHdl)(HANDLE hCHA_DIG, INT_RESULT* pintResult) = this->InterruptHandler;
if (!IntEnable(m_hCard, intHdl)) {
printf("Enabling Interrupt failed\n");
return ERR_INITINT; // Enabling Interrupt failed
}
return 0;
}
int BsCard::InitInterrupt2()
{
FuncPtr intHdl = this->InterruptHandler;
if (!IntEnable(m_hCard, intHdl)) {
printf("Enabling Interrupt failed\n");
return ERR_INITINT; // Enabling Interrupt failed
}
return 0;
}
void BsCard::InterruptHandler(HANDLE hCHA_DIG, INT_RESULT* pintResult)
{
}
Using above method, it's going to be hard to keep your InitInterrupt as a const type.
I recommend you change it to a none-constant function.
|
|
|
|
|
I got a string represented by std::string. I want to remove all the leading and trailing spaces from it and and not the spaces in the middle. How ????
|
|
|
|
|
find_first_of() and find_last_of() .
|
|
|
|
|
Look here[^].
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Example functions:
void TrimLeft(std::string &Src, char c = ' ')
{
while(Src.size() && Src[0] == c) Src.erase(0,1);
}
void TrimRight(std::string &Src, char c = ' ')
{
while(Src.size() && Src[Src.size()-1] == c) Src.erase(Src.size()-1,1);
}
Example usuage:
int main(int argc, char* argv[])
{
std::string Data1 = " Hello World";
std::string Data2 = "Hello World ";
std::string Data3 = " Hello World ";
std::string Data4 = " ";
std::string Data5 = "";
TrimLeft(Data1);
TrimLeft(Data2);
TrimLeft(Data3);
TrimLeft(Data4);
TrimLeft(Data5);
TrimRight(Data1);
TrimRight(Data2);
TrimRight(Data3);
TrimRight(Data4);
TrimRight(Data5);
return 0;
}
|
|
|
|
|
Hi..
Currently i'm develop one application on desktop...There are two version
1st version are written in VC++ and another version in VB 6.0...but the speed between this two application is within 4 - 9 second...Actually this application do is read a data from the SmartCard....
:_Rocket_:
|
|
|
|
|
I've created a 3 Pane Splitter using two splitter windows like a T on its side:-
|-
I have an Control in the bottom right hand side,
When I move the column splitter the Scrollbars disapear for the control, and only reapear if i move the row (-) splitter bar,
What function to i need to call after an OnSize to ENSURE that the entire client area is drawn?
Asim Hussain
e: asim@jawache.net
w: www.jawache.net
|
|
|
|
|
Dear all,
Correct me if I'm wrong, is memory leak due to not using delete after a new ?
Is there a program to check my program for memory leak?
Thanks
Chun Te, Ewe
|
|
|
|
|
Chun Te, Ewe wrote:
Correct me if I'm wrong, is memory leak due to not using delete after a new?
Yes. Or using delete instead of delete[] for an array made with new[]
Chun Te, Ewe wrote:
Is there a program to check my program for memory leak?
'BoundsChecker' or 'Purify' spring to my mind. Both are big money, but very good.
|
|
|
|
|
jhwurmbach wrote:
'BoundsChecker' or 'Purify' spring to my mind. Both are big money, but very good.
Are there any freewares around?
|
|
|
|
|
Not really.... the tools available are really for checking whether you are going past array bounds or accessing memory that hasn't been allocated. VC++ tells you when you have a memory leak and thats about as much help as your going to get anywhere.
There are a number of good articles here about how to trace your memory leaks better, look in 'Programming Tips'
Asim Hussain
e: asim@jawache.net
w: www.jawache.net
|
|
|
|
|
Just being obnoxious: if I'm not mistaking the 'delete[]'-syntax is no longer needed when trying to delete an array. Following code does exactly the same thing twice:
void main() {
char* s = new char[10];
delete s;
char* p = new char[10];
delete []p;
}
|
|
|
|
|
|
I stand completely corrected. I was confused with the change from 'delete [n] array' to 'delete [] array'. And I was lucky in the example I gave, because the difference between 'delete [] array' and 'delete array' is that in the latter case no destructors are called while in the former they are. But in my example I was silly enough to use char's, who, obviously, have no destructors at all.
|
|
|
|
|
If that's window objects such like GDI handles, this article [^](and tool) may help you.
MS quote (http://www.microsoft.com/ddk) : As of September 30, 2002, the Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK will no longer be available for purchase or download on this site.
|
|
|
|
|
this is one way to cause a memory leak.. another way is to serialize an object array which creates the objects using the word new, and does this everytime the file is loaded.. before serializing an object array you should delete everything in it before loading the objects into it again.. these are a few ways to have memory leaks.
-dz
|
|
|
|
|
Hi all,
Got a class (Y) with a CMapStringToOb member which stores my own class X.
X has appropriate DECLARE_SERIAL(X), IMPLEMENT_SERIAL(X, CObject, 1)
and Serialize (CArchive&) macros/member function. When I call Serialize
on class Y which in turn tries to Serialize the map member, I get an
access violation.
Anybody got any suggestions, been browsing the forums and other
relevant sites, not found anything as yet.
BTW, class Y also has correct DECLARE/IMPLEMENT macros.
MTIA.
Chris.
|
|
|
|
|
I think that container classes like CMap require helper functions for things like serialisation. Look it up on MSDN.
Asim Hussain
e: asim@jawache.net
w: www.jawache.net
|
|
|
|
|
Found the relevant section on MSDN, having some problems implementing
the solution though. I added the code...
template <> void AFXAPI SerializeElements <CXrefEntry> (CArchive &ar, CXrefEntry *pEntries, int nCount) {<br />
for (int i = 0; i < nCount; i++, pEntries++) {<br />
pEntries->Serialize(ar);<br />
}<br />
}
... to my header file for the class stored in the map, but get a lot of errors
when I compile, saying that I'm trying to redefine SerializeElements.
I've also tried the following variation...
<br />
template <class CXrefEntry> void AFXAPI SerializeElements (CArchive &ar, CXrefEntry *pEntries, int nCount) {<br />
for (int i = 0; i < nCount; i++, pEntries++) {<br />
pEntries->Serialize(ar);<br />
}<br />
}
... which also generates errors (C2995, template function redefinition)
|
|
|
|
|
i am trying to create a folder on a local machine which is a shared folder.
i have reached to a function called NetShareAdd and it takes SHARE_ONFO_2 object as paramtere but there r problems in implementing it can anybody help me????
tahnks in advance
|
|
|
|
|
I'm sure someone could help you if you explained what your "problems in implementing it " are!
STL is a religeon. Enquiries to Reverend Christian Graus
|
|
|
|
|
Hi All,
Can any body help me on the usage of NetLocalGroupGetMembers method.A code snippet provided would be of immense help.
Thanks
Abhishek.
Learning is a never ending process of Life.
|
|
|
|
|
Hi,
In dialog-based application, how to grey or disable the toolbar button?
Thanks in advance!
chen
|
|
|
|