|
Declare the two dialog as the member variable of the invoking window, and pass the window to the dialog when constructing it.
====
Of course it's not the only solution.
|
|
|
|
|
|
At compile time: maybe.
At run time: no.
I do a lot of cleanup of old code, and I can tell you that parentheses could have avoided some of the bugs I find. Even if not strictly required for correct grouping, using parentheses makes clear the coder's intent, and so eliminates potential misunderstandings by Those Who Come After.
|
|
|
|
|
I don't think so, even at compilation time, it might make things easier for the parser.
But don't quote me on that...
This signature was proudly tested on animals.
|
|
|
|
|
I'm trying to write my code independent of text encoding, which is a trivial matter for c-strings, however I'm not sure what the appropriate solution is for std::string...
At the moment I'm using the following...
#ifdef UNICODE
typedef tstring wstring;
#else
typedef tstring string;
#endif
this works for most cases, however I'm stuck when using stringstreams - I often manipulate strings with them and get the result using stringstream::str() - but of course that wont work if I'm using my tstrings because there's no appropriate conversion available. I guess my questions here are, A) is the above snippet the best way to do it, B) is there already a tstring defined somewhere that I may have missed, and C) how do I get stringstream::str() to return an encoding-independant string?
|
|
|
|
|
Yeah, that's the way to do (except that you inverted the typedef fields). You should also typedef stringstream the same way:
#if defined _UNICODE || defined UNICODE
typedef std::wstring tstring;
typedef std::wstringstream tstringstream;
#else
typedef std::string tstring;
typedef std::stringstream tstringstream;
#endif
|
|
|
|
|
In addition to Cedric's answer - I'd be tempted to insert the typedef's into the std namespace, to make ADL (aka Koenig Lookup) work more smoothly. Oh - and you can use TCHAR to remove the conditional compilation:
namespace std
{
typedef basic_string<TCHAR> tstring;
typedef basic_stringstream<TCHAR> tstringstream;
}
This article[^] would probably be of interest as well
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
thanks for the help guys. So basically I need to do that for std::string, std::ostream, std::istream, std::iostream, std::istringstream, std::ostringstream, std::stringstream, std::ifstream, std::ofstream, std::fstream, std::filebuf, std::ios, std::streambuf, std::streampos, and std::stringbuf?
That's seems like a bit of work, so I'm kinda surprised that a header such as tchar.h even exists without encoding-independent versions of the above
|
|
|
|
|
tchar existed before STL, IIRC?
Anyway - that article I pointed you at has a header with the relevant typedefs and stuff that you can download
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Ah, I missed that. You linked to the reply not the article
|
|
|
|
|
So I did - that's what Google gave me, so I'll blame them
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
I want to implement a dde server in vc++ so that excel get data from dde server . how can I implemmented this . give me some piece of code .
Trioum
|
|
|
|
|
Hi
I have a callback, I would like to recover the string from Variant :
OnEvent(const Variant &toto)
{
//I want to put the contained of toto in my string titi
AnsiString titi = ??
}
Can anyone help me?
thanks
|
|
|
|
|
just try API VariantChangeType [^]
Величие не Бога может быть недооценена.
|
|
|
|
|
thanks
but when i use VariantChangeTypeit doesn't compile([BCC32 Error] test.cpp(7076): E2034 Impossible to convert 'const Variant *' to 'tagVARIANT *'
why?
OnEvent(const Variant &toto)
{
//I want to put the contained of toto in my string titi
VariantChangeType(&toto, &toto, VARIANT_NOUSEROVERRIDE, VT_BSTR);
AnsiString titi((wchar_t*)toto.bstrVal);
}
|
|
|
|
|
hi all,
I came across an peculiar scenario and had to use TerminateThread inevitably (i hate TerminateThread and ExitThread). but when i call TerminateThread on my thread handle it returns error code 183 (ERROR_ALREADY_EXISTS) what is this means?
|
|
|
|
|
Whether you started the thread with AfxBeginThread?
Величие не Бога может быть недооценена.
|
|
|
|
|
|
karthiksharmasg wrote: I came across an peculiar scenario and had to use TerminateThread inevitably
Could you please elaborate on that ? What was the reason why you were forced to use TerminateThread ?
|
|
|
|
|
I have a application which will send data over a network, it is an blocking UDP socket, if sendto blocks in the thread their is no way for me to end that thread, so i am using TerminateThread, and i cant use Non-blocking socket due to design.
|
|
|
|
|
I have created a static library(Test.lib) and it has some resource dialogs and some classes say CMyDialog etc., .
Created a sample application(Test.exe) which links with static library(Test.lib).
Now I am creating a instance in my application and calling DoModal() did not work why?
CMyDialog mydlg;
mydlg.DoModal(); //No dialog shown
|
|
|
|
|
I think your CDialog resource may not available to the client text.exe.
Since static library cannot contain the resource files, either you have add the resource file of the dialog in test.exe with the help of IDE
or create the dialog dynamically in the static library, whichever you like.
Величие не Бога может быть недооценена.
|
|
|
|
|
Actually the DoModal() call done inside the static library itself.
The test.exe calls a method written inside static lib which creates the dialog dynamically.
|
|
|
|
|
You need to include the .rc from the static library in your .exe list of resource includes.
e.g.
Test.lib has TestLib.rc with all resources for static lib i.e. dialog template.
Test.exe:
- in VC++ goto resource view for project
- right-click on TestExe.rc
- select Resource Includes ...
- add #include "TestLib.rc" to Compile-time directives
Test.exe will now pull-in resources from Test.lib when built.
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
Since the lib is used in many applications using .rc file in the static library is not correct way.
|
|
|
|