|
johnny alpaca wrote: They could be tested for almost equality as I understand it
Yes, you are right; floating points are not well represented in binary forms, so that a value like 1.4 can be stored as 1.39999999 or 1.400000001 ( for example)
so if yo need to compare floating point numbers, you have to check them against a pre-defined precision; they are identical "up to" a certain precision
for example:
double x;
double y;
double epsilon = 0.00001;
bool bEqual = fabs( x - y ) < epsilon;
this is a good read : http://docs.sun.com/source/806-3568/ncg_goldberg.html[^]
|
|
|
|
|
johnny alpaca wrote: They could be tested for almost equality as I understand it
Yes, with the difference being epsilon.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Hi all,
I want to make enteries in add remove program through coding...
how can i do this??
|
|
|
|
|
hey you asking from the base .......if we do means ...what abt your knowledge ...???
ok any ill give some tips
give AddString() function for add button
and take the index value,and then give deletestring() button for remove button...
i think this tips may be help for u ...
|
|
|
|
|
WTF are you talking about ?
the OP is asking how he can add an entry in the "Add / Remove Programs" Section of Windows.
how can AddString() and DeleteString() help him in this regard ?
moreover, your english is quite hard to read. please avoid SMS-typing.
|
|
|
|
|
You would need to create a key in the registry under HKEY_CLASSES_ROOT\Installer\Products
with ProductName and value (that you want to appear in the add/remove program)
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
sorry guys its for my mistakes..
|
|
|
|
|
I am working on a DLL which hosts various dialogs and property sheets which is being developed in Visual Studio 2003. I would like to have Windows XP styled controls but not having much luck so far.
I have tried using #define ISOLATION_AWARE_ENABLED 1 along with embedding a manifest and calling InitCommonControls(); in the constructor for the item but at best it does nothing, at worst it crashes. I have been searching for a way to do this and tried various tools which embed the manifest but they do not seem to have an effect. I have seen articles which suggest setting the manifest in the linker options but I cannot see the option so I believe this must be a 2005+ option.
Is there a way to do this or is it just not possible in 2003 projects?
|
|
|
|
|
Have you added the manifest to your application's resource file as follows?
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"
Please check Using Windows XP Visual Styles[^]
In the newer version of visual studio, embedding manifest is as follows by defining it in stdafx.h
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
Thanks for the reply, I have tried adding the manifest as specified but it makes no difference. I have also defined SIDEBYSIDE_COMMONCONTROLS in my stdafx.h and called InitCommonControls() in my constructor all with no success. I read somewhere that I needed to set the resource ID to ISOLATIONAWARE_MANIFEST_RESOURCE_ID but that stops my DLL from registering.
The only part of the "Using XP Visual Styles" I am not sure about it whether I am using the correct SDK. I have installed "Microsoft Platform SDK for Windows XP SP2" and specified the include and lib directories in the project. Is that all that is required to use the SDK or are there more steps I need to take?
|
|
|
|
|
Hello All
I've come across a strange (or perhaps not!) problem regarding the display of colours on the screen.
I have an application that is used on mutlitple platforms, 2000 and XP being the two I have been able to test to date.
In this application I change the colour of a button (by subclassing the CButton class) to indicate a warning state and then revert it back to the normal colour when the warning stae has passed. I do this ussing an RGB item:
<br />
pDC->FillSolidRect(rect, RGB(236, 233, 216)); <br />
This is the RGB value for the normal Windows "Form Grey", which I used a colour picker application to obtain. This is the colour of the rest of the form. Thus what im aiming to achieve by setting the button to this value is have its colour the same as the rest of the form.
The problem is that this appears a lot brighter on a 2000 platform - so the button is a different colour.
Using the same colour picker on the 2000 machine. The colour of the form is given as
RGB(212, 208, 200)
Any ideas why...?
|
|
|
|
|
Can you try using GetSysColor function?
The GetSysColor function retrieves the current color of the specified display element. See msdn for parameters
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
Nice Idea, unfortunately, none of those colours match the colour of my application. It's the same colour as Visual Studio 2003 - I've not changd any colour settings for the form - so this must be the default colour...
Any other ideas...?
|
|
|
|
|
Aha - as it happens I missed one - COLOR_BTNFACE.
This now sets the button to the required color....
|
|
|
|
|
Hi All,
I have third party library build on VC7 platform. I want to use this library for VC8. But I get following linking error
error LNK2001: unresolved external symbol "public: void __thiscall std::_String_base::_Xran(void)const " (?_Xran@_String_base@std@@QBEXXZ)
I think that there is STL string implementation difference. Please correct me if I am wrong.
SO
1) Is there any way to use these libraries built over VC7 directly with VC8?
2) Or else we any any good solution for this issue?
|
|
|
|
|
get a VC8 build of the library
C++ static libs are almost never compatible between different versions of MS compilers (usually due to STL changes like that Xran one)
|
|
|
|
|
Hi,
It is multithreaded application.I am using critical section obects.I am using win32 APIs like InitializeCriticalSection(),DeleteCriticalSection().
Sometimes I am getting run time error. It suddenely shuts down my application. I traced that error and I came to know that sometimes critical section is not being initialized.
Could any one help me out?
many thanks.
|
|
|
|
|
Can you post relevant code?
Regards,
Sandip.
|
|
|
|
|
here it goes.this is my critical section class. Whenever I want critical section I will just create object of this class and call request() and release() functions to lock and unlock.It is giving me run time exception in the destructor of this class. When executing this destructor(DeleteCritical section) it is saying critical sectio not initialised.
class DSCriticalSection
{
public:
DSCriticalSection()
: m_nLockCount(0)
{
InitializeCriticalSection(&_section );
}
~DSCriticalSection()
{
DeleteCriticalSection( &_section );
}
inline void Request() const
{
EnterCriticalSection( &_section );
::InterlockedIncrement(&m_nLockCount);
}
inline void Release() const
{
if (::InterlockedExchange(&m_nLockCount, m_nLockCount) > 0)
{
::InterlockedDecrement(&m_nLockCount);
LeaveCriticalSection( &_section );
}
}
inline long GetLockCount() const
{
return m_nLockCount;
}
private:
mutable CRITICAL_SECTION _section;
mutable long m_nLockCount;
};
|
|
|
|
|
Did you verify that your destructor is getting called only once??
MSDN Says
After a critical section object has been deleted, do not reference the object in any function that operates on critical sections (such as EnterCriticalSection, TryEnterCriticalSection, and LeaveCriticalSection) other than InitializeCriticalSection and InitializeCriticalSectionAndSpinCount. If you attempt to do so, memory corruption and other unexpected errors can occur.
Regards,
Sandip.
|
|
|
|
|
Hello,
I have a toolbar with several icons in it and there is one icon that I must change at runtime. How can I manage this?
I have tried someting like this, but the code crashes...
CToolBarCtrl& tb = m_wndToolBar.GetToolBarCtrl();
int iButtonCount = tb.GetButtonCount();
CDC dcMemToolbar;
CDC dcMemSrc;
CBitmap SrcBmp;
CBitmap NewBmp;
CBitmap* pOldSrcBmp = NULL;
CDC* pDc = GetDC();
dcMemToolbar.CreateCompatibleDC(pDc);
dcMemSrc.CreateCompatibleDC(pDc);
SrcBmp.LoadBitmap(IDB_TOOLBAR);
pOldSrcBmp = dcMemSrc.SelectObject(&SrcBmp);
dcMemToolbar.BitBlt(0, 0, iButtonCount*16, 16, &dcMemSrc, 0, 0, SRCCOPY);
NewBmp.LoadBitmap(IDB_INVALID_ICON);
dcMemSrc.SelectObject(&NewBmp);
dcMemToolbar.BitBlt(0, 0, 16, 16, &dcMemSrc, 0, 0, SRCCOPY);
dcMemSrc.SelectObject(pOldSrcBmp);
m_wndToolBar.SetBitmap(SrcBmp);
Thank you
|
|
|
|
|
Better to handle using CImageList it will be easy and convenient. Please try in this way.
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
Hello everyone,
What is the scene behind the option of merge proxy/stub code in ATL project? My confusion is, COM (in-process server) is a DLL, proxy is another DLL normally, how could two DLLs be merged into one DLL?
thanks in advance,
George
|
|
|
|
|
George_George wrote: My confusion is, COM (in-process server) is a DLL, proxy is another DLL normally, how could two DLLs be merged into one DLL?
For the most part, you can put whatever you want in a DLL. Perhaps you could be more specific about your confusion?
led mike
|
|
|
|
|
Thanks led mike,
I have made more study by myself. Do you think my following understading are both correct?
- If separate coclass code and proxy code into two DLLs, under Windows registry, we need to register coclass DLL under coclass CLSID and register proxy DLL proxy coclass CLSID;
- If bundle coclass code with proxy code, under Windows registry, we register both the DLL (bundled) under both original coclass CLSID and proxy coclass CLSID.
Both are correct?
regards,
George
|
|
|
|