|
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]
|
|
|
|
|
Thank you very much. I just scanned it ( the article) and it it exactly what I need to get better grip on the comm processing.
This is just preliminary - it may be a real stupid question now - does it mean that the asynchronous Read / Write uses its own thread?
For learning I just "build" the COM parameters(baud rate etc) in main thread an then do Read / Write in another MFC thread. On first look it seems redundant. But I'll hopefully know more after I read the article more thoroughly.
|
|
|
|
|
1/ overlapped, not overllaped.
2/ Carlo already corrected your understanding of that word - your understanding was fine from "english", but not from "win32".
3/ Read the following essay on serial programming:
http://www.flounder.com/serial.htm[^] - it's well written, and will save you from some bad mistakes.
Good luck,
Iain.I have now moved to Sweden for love (awwww).
|
|
|
|
|
Iain, thanks a bunch for a good article link.
I am little confused by the introduction which states that using various "wait" for events is not the best way. I am beginning to see the pivotal role of the OVERLAPPED structure. ( I am not the gretest speller and rely on the compiler ot kick me for that!!).
But I do agree with the statement that most serial code in use by various authors is convoluted!
I personally think it is because most of them concentrate on code and miss the hardware requirements of the serial communication.
Thanks again. Have a great day.
Vaclav
PS Had enough of snow and waiting for spring?? I am tired of freezing in "hot" Texas.
|
|
|
|
|
Hi everyone,
I have a trading system that consits of several applications (all in C++) working together.
In a nutshell, application A sends data to apps. B, C, D .. etc. Those apps process the data and tell application Z to send orders to the market.
All the inter-application communication is achieved using MSMQ messages.
Up to now I'm glad with the whole system speed, but I wonder ether there exists a better alternative to MSMQ messaging.
I read something about RCF (Remote Call Framework), but i'm a bit lost, because I really do not know what other options I have and what are their advantages.
Any advice?
Thank you.
|
|
|
|
|
tximo wrote: a better alternative to MSMQ messaging.
why dont you qualify 'better' - in what way ? - why is MSMQ not working for you ??.
There are alternatives, but they cost $$
'g'
|
|
|
|
|
Well, I'm not saying it does not work.
In fact, up to now, I am quite glad with it. But I beleive that sooner or later our system will get bigger and maybe MSMQ is not the best option.
Imagine you buy the first car you see because it fits your needs. You're happy with it but you wonder: Did I get really the best car for me? Will this car fit me when I have kids?
One key factor in our trading system (in any system, I think) is how quik does it respond to market events. Imagine my system has to buy a stock when it hits a certain price. There is a time interval since the stock hits the price, the data comes into my system, my system sends the order, the order reaches my broker, and it is executed. In that delay interval, the price might have moved (it always does) and I end by paying a higher price. Time is Money.
So part of my job is to reduce that delay as much as possible. One milisecond counts.
What do I mean by "better"? Above all, faster. I find sending an MSMQ message takes quite a good number of code lines and function calls, that is, execution time. Besides, the message has to reach the server (MS message queuing service) and be read by the receiver. That means extracting data from the message, which is a string containing several fields with the corresponding field limiters. That does not sound like lightning-fast, does it?
About costs, I repeat what I said, time is money, and we invested a considerable amount of both, so any cost might be worth it if we improve enough.
Thank you.
|
|
|
|
|
if every millisecond counts, the best you can do is reduce the number of processes involved; switching threads and processes takes time. Did you consider a real-time operating system?
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly formatted, adding PRE tags is the easiest way to obtain that. All Toronto weekends should be extremely wet until we get it automated in regular forums, not just QA.
|
|
|
|
|
I'm not sure what do you mean by "real-time". I thought my system was real-time.
One advantage of having several applications is flexibility. I considered this a key factor when I first designed our system, despite losing some performance speed. If I have only one big program, I have to stop it, modify it and restart it every time I want to introduce a new trading strategy or remove one, or modify one. Besides, (I think) one error or bug in one strategy can compromise the performance (in terms of trading profits) of other strategies.
|
|
|
|
|
Well, there are things like Tibco EMS for example. While the raw wire speed of most message systems is likely going to be much the same, Tib/EMS gives you the ability to describe custom messages which will be quicker to build/unpack for example. You could send name/value pairs for example. It also gives you scalability, 'certified' messaging ie guaranteed delivery, interoperability with Java JMS.
But likely there are other products on the market - IBM MQ Series for example, Sonic MQ - all good if you want 'interoperbility'
For something different though (also free), you could look at http://www.zeroc.com/[^]
I've barely scratched the surface of what you'd want in a message system - hence I asked 'what constitutes better' for you - its difficult for an outsider to know without being able to do an indepth analysis
|
|
|
|
|
Thanks for your reply. I hope I didn't seem rude in my answer. I appreciate your help.
|
|
|
|
|
I would do some performance tests before starting to look for alternative. Just to have a baseline of what performance you have now with MSMQ-
According to http://msdn.microsoft.com/en-us/library/ms811054.aspx[^] then when using MSMQ Express-mode (not using disk or transactionality) then it can execute 7000 TRX/Sec. (On an old computer)
Besides the fact that MSMQ locks you to the Microsoft Platform, then I think it is a good choice for communication in the C++ world.
But you could try looking at named pipes/tcpip, which should be the closest thing to raw communication. But then you have to implement your own protocol for how to recognize a single message, as data just comes in one long stream. With all the issues with recovery from broken communication links, timeouts, etc. And then suddenly you have your own non-standard communication platform which only you can troubleshoot, and it is hard to get help from the outside.
|
|
|
|
|
Hi,
I am trying to get the handle of the event from in my derived base class
e.g. myevent : public CEvent
I could refer to m_hObject
however there seems to be a operator to this
I have gotten used using OO but still new at using operator
would anyone know they syntax of HANDLE operator to get the handle of the event from my derived class "myevent"
thankx
|
|
|
|
|
This type of operator is similar to a cast and is used thus:
HANDLE x;
x = (HANDLE)<your object>
if (NULL == (HANDLE)object)
... txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|