|
#include <AtlConv.h>
{
...
USES_CONVERSION;
char* pchTempResult = T2A(cszYourString);
strncpy(cCoffee, pchTempResult, _countof(cCoffee));
...
} Check your definition of Irrationality[ ^]
1 - Avicenna
5 - Hubbard
3 - Own definition
|
|
|
|
|
Thanks.
Nearly, but not quite, I still have error C2664.
The problem seems to be strncpy .
It complains about not being able to turn signed char* into char* .
But I used CopyMemory instead and it worked!!
Thanks a million!!
|
|
|
|
|
try
CopyMemory(strString3.GetBuffer(16/*needed*/+1/*sanitiy*/), cCoffee, sizeof(signed char)*16);Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
The problem is exactly that.
signed char is not UNICODE but CString is.
You can either change cCoffee to signed wchar_t which will make it UNICODE .
Or you can use CStringA which will then not use UNICODE .
Or you can convert cCoffee to a UNICODE string using MultiByteToWideChar .
|
|
|
|
|
#ifdef UNICODE
char* pchTest("test");
CString cszTest(pchTest);
ASSERT(cszTest == _T("test"));
#endif
You will not see any popup window hier Check your definition of Irrationality[ ^]
1 - Avicenna
5 - Hubbard
3 - Own definition
|
|
|
|
|
Thanks.
I have no choice over how cCoffee is declared, and I have to use CString not CStringA, so I tried the MultiByteToWideChar option, but I still get error C2664.
|
|
|
|
|
Please post the relevant code.
|
|
|
|
|
MultiByteToWideChar(CP_UTF8, 0, cCoffee, -1, &strString1, 0);
|
|
|
|
|
strStrings1 has to be of type wchar_t and the last parameter has to be specified.
wchar_t strString1[MAX_PATH];
MultiByteToWideChar(CP_UTF8, 0, cCoffee, -1, strString1, MAX_PATH);
|
|
|
|
|
Ah, I see, thanks for the help.
|
|
|
|
|
|
Thanks.
Iain Clarke, Warrior Programmer wrote: Big hint, which you've already had: later versions of VS default to unicode, so CString uses that.
I just assumed my VS uses Unicode because it speaks Japanese.
Never mind, at least I'll know where to look the next time I get stuck on strings.
|
|
|
|
|
Hi,
I would like to call my home page from VC++ (thru default browser).For example, user clicks on a button, so internet explorer will be open to show some web pages.
Can anybody help me ?
|
|
|
|
|
You can use the ShellExecute[^] function to open a page in the browser. txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
you can reference this code :
int OpenGG()
{
PROCESS_INFORMATION pi;
STARTUPINFO si;
BOOL bRet;
ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));
ZeroMemory(&si,sizeof(STARTUPINFO));
ZeroMemory(&si,sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.lpReserved = NULL;
si.lpDesktop = NULL;
si.lpTitle = NULL;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWMAXIMIZED;
si.cbReserved2 = NULL;
si.lpReserved2 = NULL;
CString strUrl = "C:\\Program Files\\Internet Explorer\\IEXPLORE.exe http://www.google.cn";
bRet = CreateProcess(NULL,(LPTSTR)(LPCTSTR)strUrl,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
return bRet;
}
there leave a blank space between the "IEXPLORE.exe" and "http://...".
Good Luck !
|
|
|
|
|
This opens IE, which may not be the default browser. You should use ShellExecute() instead."One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
|
In addition to other's criticisms this assumes that that the browser is installed at a specific location. There's no guarantee this is true, in fact it is not even unusual. This is bad code. Steve
|
|
|
|
|
Hello,
thankyou, but I dont know what type of browser are installed on user system.
I would like to write a function only with one argument such as this:
CallMayHomePage("www.myhomepage.com")
Best Regards
Behzad Saffarian
|
|
|
|
|
ShellExecute() has been suggested to you twice. Have you tried it? "One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
other way,you can see:
int OpenUrl(CString strUrl)
{
CString strCmdLine = "explorer.exe " + strUrl;
LPTSTR lpCmd = (LPTSTR)(LPCTSTR)strCmdLine;
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = 1;
BOOL bRet = CreateProcess(NULL,
lpCmd,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi);
if(bRet)
{
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
return bRet;
}
void CUrlDlg::OnBtnTest()
{
OpenUrl("http://www.baidu.com");
}
but I propose that you must adopted DavidCrow' plan..
|
|
|
|
|
This is a bizarre approach. A better way is shown here[^]. In short:
LONG r = ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL); Steve
|
|
|
|
|
|
Please read complete text before making recommendations.
I am trying to understand the methods used in serial communication. I have read plenty of serial classes descriptions and sample code lines and have a general understanding of the process.
What got me puzzled is usage of OVERLLAPED structure and MSDN API conflicting help in description of ReadFile which states that “overlapped is not supported”. However, the SDK help for same function is using the OVERLLAPED structure.
I think the terminology usage of “OVERLLAPED” ' is unfortunate.
In my definition – overlapped means physically overlapping something – plain windows for example, on desktop.
I can see multiple access to a file as sort of overlapping.
However, I just cannot see how Windows OS can handle multiple, hence overlapped , access to same COM port.
I am not looking for a code or serial library.
I just need some clarification on the “overlapped COM usage “.
Thanks for reading and as always any constructive help is appreciated.
Cheers
Vaclav
-- Modified Monday, March 1, 2010 1:16 PM
|
|
|
|
|
Have you read "Synchronization and Overlapped Input and Output"?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|