|
I think you are talking about a callback function?
See here[^]
|
|
|
|
|
Hello,
not exactly (see the first sample, and the principle here :
class ClassACTION {
class ClassExecute {
private:
//pointer on function
void (*_func)( string s);
public:
ClassExecute( void (* func)( string s) { _func = func; }
void go() { _func( "hello"); }
}
private:
ClassExecute *_Executor;
public:
void myFunction( string s) { cout << s << " friend." << endl; }
ClassACTION() {
_Executor = new ClassExecute( myFunction); <<< here is the problem (does'nt compile)...
_Executor->go();
}
};
Best regards.
|
|
|
|
|
You need to use &class-name::fnFirstAction and &class-name::fnSecondAction , where class-name is the class that implements those methods.
You don't appear to have any implementation of the methods, though - the only definitions of those two methods that I can see is the abstract method declarations in QMTPulsar - i.e. the following two lines:
virtual void fnFirstAction( MTDevicePrv *dev) = 0;
virtual void fnSecondAction( MTDevicePrv *dev) = 0;
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Hello,
I have a STL map and string values as the key values However recently, i want to search this map as it is like auto-complete ComboBox.
For example,I have keys in the map as such Apple, Pearl, Orange.
When i enter 'A' i want to return Apple from the map.
I know that i can iterate thorough each map object and compare its key, but i think that would inefficient.
Any ideas ?
Bekir.
|
|
|
|
|
Use std::map::lower_bound . For example, the program below gives you a pair of iterators defining the range containing keys starting with 'A':
#include <string>
#include <map>
#include <iostream>
int main(int, char**)
{
std::map<std::string, int> a;
a.insert(std::make_pair("Apple", 1));
a.insert(std::make_pair("Banana", 1));
a.insert(std::make_pair("Pear", 1));
a.insert(std::make_pair("Apricot", 1));
a.insert(std::make_pair("Plum", 1));
std::map<std::string, int>::const_iterator low = a.lower_bound("A");
std::map<std::string, int>::const_iterator hi = a.lower_bound("B");
for(std::map<std::string, int>::const_iterator it=low;it!=hi;++it)
{
std::cout << it->first << std::endl;
}
}
Note that the sample key for the second lower_bound call is just the key you're looking for with the last character incremented by one.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thank you, this is what i was looking for
Bekir.
|
|
|
|
|
Doesn't this require the elements to be sorted?
|
|
|
|
|
It's a std::map - by definition, it's sorted.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
You are right. maps do it.
|
|
|
|
|
i need from vc++ program get a list of dll (there are in one folder, "plugins"), from choosen dll get a list functions and run them. it's deficult? write some code to do it
modified on Wednesday, April 8, 2009 3:04 AM
|
|
|
|
|
In general, I'd look for a known set of functions, rather than trying to get a list of functions in the DLL - after all, you need to know how to call the functions, if they're plug-ins?
So - the first task is to design your plug-in interface so it's generic enough to do what you want.
Once you've done that, it's relatively easy to iterate through the files in a directory (look at the FindFirstFile[^] documentation), see if they're DLLs (LoadLibrary[^]) and see if they have the function you want (GetProcAddress[^]).
Now, if you really want to list the functions exported by a DLL, you need to read the internal structure[^] of a DLL, to get its export table. There's a short program to illustrate that here[^] - look for the last post on the page.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
|
No you are wrong. It's called "CodeProject".
|
|
|
|
|
XDDDD good one
Regards.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
Rating helpfull answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
No. You are an absolute idiot if you think anybody here is going to give up their time in order to do your project for free. If you want the project, then pay for it. On another website. Stop posting ridiculous queries which drown out the legitimate, intelligent questions which have been posted
|
|
|
|
|
hai i need a complete code for our project .. interactive voice response system using vc++(MFC) .. please help me
|
|
|
|
|
Sure, would you like some tea with it ?
|
|
|
|
|
OK, seriously though: Read the guidelines and edit your post to have more information and make sure your query is specific, at least to some degree.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Hello All ,
My following Code is in cpp and use COM interfaces, My complile and build with 0 errors and 0 warnings .But at run it gives exception .In code line
hr=serviceManager->AddScanPackageService(BSTR("Offline SyncService"),BSTR("c:\\wsusscan.cab"),0,&service);
when this line exicute value of hr is E_INVALIDARG.
plz help my code is as folloing .
/////////////////////////////////////////////////////////////////////
{
IUpdateSession * session = 0;
IUpdateServiceManager * serviceManager = 0;
IUpdateService * service = 0;
IUpdateSearcher * searcher = 0;
ISearchResult * searchResult = 0;
IUpdateCollection *collection=0;
IUpdate *update=0;
HRESULT hr;
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_UpdateServiceManager, 0, CLSCTX_ALL,
IID_IUpdateServiceManager,(LPVOID *)&serviceManager);
hr=CoCreateInstance(CLSID_UpdateSession,0,CLSCTX_ALL,IID_IUpdateSession,
(LPVOID *)&session);
////////////////////////////////////////////
hr=serviceManager->AddScanPackageService(BSTR("Offline Sync Service"),BSTR("c:\\wsusscan.cab"),0,&service);
//////////////////////////////////////////////////////////
hr=session->CreateUpdateSearcher(&searcher);
ServerSelection ss={ ssOthers } ;
BSTR str=0;
hr=searcher->put_ServerSelection(ss);
hr=service->get_ServiceID(&str);
hr=searcher->put_ServiceID(str);
hr=searcher->Search(L"IsInstalled=0",&searchResult );
hr=searchResult->get_Updates(&collection);
LONG count;
hr=collection->get_Count(&count);
for(LONG i=0;i<count;i++)
{
collection->get_Item(i,&update);
update->get_Title(&str);
printf("%s",(char *)str);
}
}
///////////////////////////////////////////////////////////////////////
Thanks for reading this
question/ replying answer.
|
|
|
|
|
I suspect your problem is that you can't just create BSTR s by casting normal strings to BSTR .
You need to a) use SysAllocString[^] to create the BSTR, b) convert the string from ASCII to OLE format (personally, I'd use the ATL conversion functions[^] as they're dead easy to use) and c) use SysFreeString[^] to release the string once you've finished with it.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
|
Hi,
I need to design an application accessing database system.
I need to design it like a server/mutiple client model in c++.
Can i get any article dealing with the database client/server model.
Thanks
|
|
|
|
|
krishnan.s wrote: Can i get any article dealing with the database client/server model.
Here's one[^].
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
hi all,
I had to include dll with my exe, but my problem is if i keep those dll in my install folder than my project does not work fine. To remove this i have put those dll in new folder inside my installed folder but now my project is not loading those dlls and showing warning
warning LNK4199: /DELAYLOAD:...\test_Folder\abc.dll ignored; no imports found from ...\test_Folder\abc.dll
|
|
|
|
|
You can use SetDllDirectory API to add the new folder to the DLL search path.
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|