Hi, Had this in my bookmarks (don't know where the left pane went :sigh: http://msdn.microsoft.com/library/en-us/dnwue/html/FRE_word_list.htm[^] Hope this helps
squidev
Posts
-
Question for Foreign Langauge Speakers -
Robotics StudioThose properties are just text resources that are automatically added in installers when they're created with InstallShield. Unless one of them was the error message you got, those two lines are pretty much harmless. Look for an error code. Or, if you have the Platform SDK installed, try loading the log file into wilogutil.exe, it's an MSI log viewer. Hope this helps
-
Basic to ATL/COM ......Hi, You might want to check the COM section right here at CodeProject, there is a Beginner's section. For instance, here is a good intro: Introduction to COM - What it is and How to Use it by Michael Dunn.
-
Using find_if with vector of pointers ?Oh that's what I was missing! I have seen a lot of functors examples but they rarely had their own constructor. Thanks!
-
Using find_if with vector of pointers ?Thanks for the link, I have been looking for such reading material. And the download is free :cool:
-
Using find_if with vector of pointers ?Hi all, I know STL enough to understand containers and iterators but going from Predicates to Unary/Binary and vice versa is a bit unclear to me. I have
class CMyClass { public: // SNIP inline CString GetID() const {return m_csID;} // SNIP protected: CString m_csID; // SNIP };
Now suppose I want an array of CMyClass* and detect whether an object of a specified ID already exist. How can I use find_if ?// SNIP vector myarray; LPCTSTR lpszNewID = _T("NEWID"); if (find_if(myarray.begin(), myarray.end(), IsID(lpszNewID)???) != myarray.end()) // then don't add it a second time
Any idea how to implement and properly use the "IsID(LPCTSTR lpszID)" part? :confused: Thank you -
Button press simulationHave you tried sending WM_LBUTTONDOWN+WM_LBUTTONUP (with proper point) ? I haven't tried it, but it seems to be the starting point of a button press... HTH :-O squidev
-
InstallShield WTF of the dayActually, you are refering to a Windows Installer (a.k.a. MSI) property. Nothing to do with InstallShield. But AFAIK, it's their IDE that takes the prize X|
-
custom controlHi xDiamant, I don't think you can get a button for each and every new control you design. But there is the "Custom Control" button that will allow you to use any control you have created, in the resource editor. This article should help: Creating Custom Controls squidev
-
Creating Setup Projects And Adding Merge ModulesTo see the dependencies of your programs, use the Dependency Walker tool (depends.exe). To get more info on merge modules and setups in general, try this site:www.installsite.org Hope this helps
-
Strange dynamic_cast problemIn VC++ 6.0: Go to Project->Settings... Go to the C/C++ tab Category = C++ Language Check the box "Enable Run-Time Type Information (RTTI) Set this to both Debug and Release This makes your exe slightly bigger (not that much), but it allows you to query the types of the objects you're using, and use dynamic_cast. Watch out for name clashes when using multiple inheritence. If you really need to use this, make sure the base classes do not have methods with the same name (and the base classes' base classes...). Hope this helps
-
Strange dynamic_cast problemHi, Have you tried enabling RTTI for your project ? When it's enabled, instead of throwing an exception, the dynamic_cast will return NULL (make sure you check the return value!:-O) Hope this helps
-
Building questionAre you sure you don't have DependencyWalker ? Look for a file called depends.exe, under [Path to Visual Studio]\Common\Tools Hope this helps
-
Are function calls that costly? Need help optimizingIf you can step through your code, you could pin-point the costy call with the use of the @clk pseudo-register. In your watch window, add
@clk @clk=0
When you step, the value for @clk will give you how long it took. Hope this helps:) -
Look into this code of floodfill. Running out of memory.Try not to create the CClientDC object at each recursive call, but once, then call this:
void dlg::floodfill(CDC* pDC, int x, int y, int r , int g, int b)
Hope this helps :)