|
//How to do conversions for CLR C++ GUI
//This worked
double dblInput1 = 0.0;
double dblInput2 = 0.0;
double dblAnswer = 0.0;
String ^ strInput1;
String ^ strInput2;
strInput1 = this->Input1textBox->Text;
strInput2 = this->Input2textBox->Text;
Double::TryParse(strInput1, dblInput1);
Double::TryParse(strInput2, dblInput2);
dblAnswer = dblInput1 + dblInput2;
Answer1textBox->Text = System::Convert::ToString( dblAnswer );
But, How do i add an If then to handle the TryParse exception???
|
|
|
|
|
//Here is the conversion part CLR C++ GUI
//CLR isnt too bad… better than MFC yes?
double dblInput1 = 0.0;
double dblInput2 = 0.0;
double dblAnswer = 0.0;
String ^ strInput1;
String ^ strInput2;
strInput1 = this->Input1textBox->Text;
strInput2 = this->Input2textBox->Text;
if (Double::TryParse(strInput1, dblInput1) & Double::TryParse(strInput2, dblInput2))
{
// do something
dblAnswer = dblInput1 + dblInput2;
Answer1textBox->Text = System::Convert::ToString( dblAnswer );
}
else
{
// the text was not a number
MessageBox::Show(“Error”);
}
|
|
|
|
|
Hi ,
i want to import WTL in an ATL project,if anyone have any idea ,please share !!!!!!!!!
|
|
|
|
|
There is a WTL section in CodeProject, I'd suggest you to look there.
In practice, you have to #include a few WTL headers in your STDAFX.H.
Take a look at Creating a WTL Dialog, Property Sheet or Wizard out of a resource (The Easy Way)[^], the sample project is an ATL DLL with WTL for the UI: the stdafx.h file will give you a hint.
Hope this helps,
Pablo.
"Accident: An inevitable occurrence due to the action of immutable natural laws." (Ambrose Bierce, circa 1899).
|
|
|
|
|
Hi Guys,
i want to list and check the status of each contact of my Office Communicator
for this i have done till
1)i can see number of contact from get_count method
2)GetContact method is also successfully executed.
and done know how to move further..
any help is appriciated..
CoInitialize(NULL);
HRESULT hr = CoCreateInstance(CLSID_Messenger,NULL,CLSCTX_LOCAL_SERVER,
IID_IMessenger, (LPVOID *)&m_pIMessenger);
BSTR myName;
MISTATUS sMyStatus;
hr=m_pIMessenger->get_MySigninName(&myName);
hr = m_pIMessenger->get_MyStatus(&sMyStatus);
BSTR serviceId;
m_pIMessenger->get_MyServiceId(&serviceId);
IDispatch *pContacts;
IMessengerContacts *pCon;
BSTR bstrServiceId;
hr = m_pIMessenger->get_MyServiceId(&bstrServiceId);
if (FAILED(hr))
return NULL;
hr = m_pIMessenger->GetContact(myName, bstrServiceId,
(IDispatch**)&pCon);
</blockquote>
vikas da
|
|
|
|
|
I don't see the items you refer to in your code extract.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
 Thanks for the reply...
Please find the complete code
<blockquote class="FQ"><div class="FQA">Quote:</div>#include<iostream>
#include <windows.h>
#include <tchar.h>
#include<Iads.h>
#include <ole2.h>
#include "c:\program files\Microsoft Office Communicator\SDK\msgrua.h"
const GUID IID_IMessenger =
{0xD50C3186,0x0F89,0x48f8,{0xB2,0x04,0x36,0x04,0x62,0x9D,0xEE,0x10}};
const GUID CLSID_Messenger =
{0x8885370D,0xB33E,0x44b7,{0x87,0x5D,0x28,0xE4,0x03,0xCF,0x92,0x70}};
const GUID IID_MessengerContacts =
{0xE7479A0F,0xBB19,0x44a5,{0x96,0x8F,0x6F,0x41,0xD9,0x3E,0xE0,0xBC}};
const GUID IID_IEnumVARIANT =
{0x00020404,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
IMessenger* m_pIMessenger;
IMessengerContact* GetContact(BSTR bstrSigninName);
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
HRESULT hr = CoCreateInstance(CLSID_Messenger,NULL,CLSCTX_LOCAL_SERVER,
IID_IMessenger, (LPVOID *)&m_pIMessenger);
BSTR myName;
MISTATUS sMyStatus;
hr=m_pIMessenger->get_MySigninName(&myName);
hr = m_pIMessenger->get_MyStatus(&sMyStatus);
BSTR serviceId;
m_pIMessenger->get_MyServiceId(&serviceId);
IDispatch *pContacts;
IMessengerContacts *pCon;
if (FAILED(hr))
return NULL;
hr = m_pIMessenger->GetContact(myName, serviceId,
(IDispatch**)&pCon);
if(FAILED(hr))
{
cout<<"Failed";
}
m_pIMessenger->get_MyContacts(&pContacts);
pContacts->QueryInterface(__uuidof(IMessengerContacts),(void**)&pCon);
long lCount=0;
pCon->get_Count(&lCount);
CoUninitialize();
return 0;
}</blockquote>
Bow here i can see the count..now i want to iterate through each contact ..i am not getting right method to do the same.
vikas da
|
|
|
|
|
tasumisra wrote: now i want to iterate through each contact
Use the Item [^] method.
Note: please use <pre> tags round code not <blockquote>
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Thanks Rich..
added
IDispatch *ppContacts;
hr=pCon->Item(0,&ppContacts);
after that not getting any clue how to proceed further...any help ..i am just blank...
vikas da
|
|
|
|
|
tasumisra wrote: not getting any clue how to proceed further...any help ..i am just blank.
Well I guess you need to iterate through the list from zero to the maximum value as indicated by the Count property.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
i tried that as above...
hr=pCon->Item(0,&ppContacts);
now ppContacts seems to be another interface with all COM predefined methods like Querry interface ,addref release etc.
vikas da
|
|
|
|
|
You really need to spend a lot more time reading the documentation on this interface before trying to implement it.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Thank you so much Rich.. yes there is a need of going through the documentation.
vikas da
|
|
|
|
|
I want to Convert CString value to Char[100];
Please guide me.
Thanks,
Krishna
|
|
|
|
|
Not sure why char[100] ... ??? ...why not get the size first then allocate the array dynamically?
But, you can use the CString::GetBufferSetLength() (allows you to specify maximum size) method then just copy the contents of the buffer to the char[] using memcpy() .
|
|
|
|
|
For Example i took char[100] As you mentioned i need to take the length of the string.
Thankyou Albert.
|
|
|
|
|
Use strcpy() or its wide character equivalent for the copy. For further information see here[^].
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
Forgot you can use that on a CString... 
|
|
|
|
|
If I had $1 for everything I've forgotten ...
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
LPSTR WideChar2MBCS( const CString& strCS )
{
const UINT wLen = strCS.GetLength() + 1;
UINT aLen = WideCharToMultiByte(CP_ACP,0,strCS,wLen,NULL,0,NULL,NULL);
LPSTR lpa = new char[aLen];
WideCharToMultiByte(CP_ACP,0,strCS,wLen,lpa,aLen,NULL,NULL);
return lpa;
}
maybe this will help you.
myblog is: http://www.cppblog.com/stonexin/archive/2011/12/01/161280.html
|
|
|
|
|
btw,this is unicode project.
|
|
|
|
|
|
CString str = _T( "Test string." );
char pBuffer[ 100 ];
if( sizeof( TCHAR ) == 2 )
WideCharToMultiByte( CP_ACP, 0, ( WCHAR* )str.GetBuffer(), -1, pBuffer, 100, NULL, NULL );
else
{
char* pTemp = ( char* )str.GetBuffer();
memcpy_s( pBuffer, 100, pTemp, strlen( pTemp ) + 1 );
}
|
|
|
|
|
I have a dll COM , I want to convert it to UNICODE.
I readed some documentations about this but I can't get what I should do to be sure that the conversion is done correctly or Not
these are some remarks i have done in my code :
- Use of CString
- char changed by _TCHAR
- char*, LPSTR (Win32 data type) changed by LPTSTR
- const char*, LPCSTR (Win32 data type) changed by LPCTSTR
- USES_CONVERSION macro
- use of std::wstring instead of std::string
- change characters set of project to UNICODE
I don't know if it is sufficient or there are others things to do
And How can I check after conversion if it is Ok or Not.
Thanks for reply.
|
|
|
|
|
You also need to make sure all your string literals ar changed from char to TCHAR with the _T() macro like this:
const char* cp = "Ansi string"; PCTSTR tcp = _T("TCHAR string");
After that, the only way to be certain you have it right is to desk check and test. There may be some free tools around to help verify it but I'm not aware of them; Google may help you.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|