|
Hello All,
Not to toot my own horn...well, OK...to toot my own horn
You may recall my step-by-step DCOM tutorial for VC6, which I posted at
http://www.codeproject.com/com/HelloTutorial1.asp[^]
The tutorial isn't meant to reveal the underlying theory and gory detail of DCOM itself, just like the Scribble tutorial wasn't exactly meant to tour every nook and cranny of MFC. However, the tutorial shows each step to take to build a very simple DCOM server and client.
People have been asking me to update the tutorial for VS.NET. And, at last, the new tutorial series is in the midst of being written. Check it out at
Step 1: http://www.codeproject.com/useritems/HelloTutorial1NET.asp[^]
The tutorial is written in several "Steps" -- the main parts of the process. Step 1 is linked above, and each Step contains links to every other step.
Do me a favor, and use the rating at the bottom of each step to score that Step, and post to the Steps' message boards with your questions, and also suggestions on how to make a certain Step better etc. I welcome any and all input, and both positive kudos and constructive feedback together are great. Thanks!
Sincerely Yours,
Brian Hart
Department of Physics and Astronomy
University of California, Irvine
|
|
|
|
|
Could someone please give a novice a hand? class data { CString name; CString Address; CString age;};
vector<data> mydata. This will hold data I want to send to a database file.
Can someone show me how to format this class's data each time and send it to/receive from a file?
If I have to use a delimiter then how do I do this correctly and receive it correctly to place in a RECEIVING vector?
Please be patient with my ignorance and teach me!
PLEASE!
C++ is my favorite programming language
-- modified at 20:14 Friday 30th December, 2005
|
|
|
|
|
Maybe this will get you started:
#include <string>
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
class data
{
public:
data(const char* pName, const char* pAddress, const char* pAge):
name(pName), Address(pAddress), age(pAge) {}
string name;
string Address;
string age;
};
ostream& operator<<(ostream& s, const data& d)
{
s << "Name : " << d.name << "\n";
s << "Address : " << d.Address << "\n";
s << "age : " << d.age << "\n";
return s;
}
typedef vector<data> DataCollection;
int main(int argc, char* argv[])
{
DataCollection dc;
dc.push_back(data("Fred", "10 How st", "Fifteen"));
dc.push_back(data("Doug", "12 Now st", "3"));
dc.push_back(data("Sara", "5 Brown st", "10"));
dc.push_back(data("Joe", "9 Cow st", "34"));
ostream_iterator<data> osi(cout);
copy(dc.begin(), dc.end(), osi);
return 0;
}
NOTES:
I replaced your CStrings with std::strings because I like them better and they are standard. I've only show the writing part. I write to the screen instead of a file.
Steve
|
|
|
|
|
template <class T>
class CMessage
{
BEGIN_MSG_MAP_EX(CMessage)
MESSAGE_HANDLER(WM_NCLBUTTONDOWN, OnNcLButtonDown)
END_MSG_MAP()
LRESULT OnNcLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
T* pT = static_cast<T*>(this);
pT->DefWindowProc();
return 0;
}
};
class CMainDlg : public CDialogImpl<CMainDlg>,
public CMessage<CMainDlg>
{
public:
......
BEGIN_MSG_MAP_EX(CMainDlg)
CHAIN_MSG_MAP(CMessage<CMainDlg>)
END_MSG_MAP()
...
};
---------------------------------
i used spy++ see, WM_NCLBUTTONDOWN posted but not return? why i used pT->DefWindowProc(); but can't return?
|
|
|
|
|
You could try setting bHandled to FALSE in your message handler.
|
|
|
|
|
yes, used bHandled = FALSE can return, but i want returned and do something, but i don't know why pT->DefWindowProc(); can not do~
|
|
|
|
|
I don't understand your question. Posted messages don't have return values (but I'm not sure if this is what you mean).
Steve
|
|
|
|
|
1) Where can I learn to create my own Browser Helper Objects? Any suggestions?
2) How different VS2005 is from VS2003?
There are nice examples on this website but I couldn't compile almost any of them successfuly.
I think one of the reasons is new VS2005. After I download source file, then the whole project had to be converted. Most of time I get warnings
It would generated few warnings:
c:\...\basicpopupblocker\pubwhitelist\whitelist.h(71) : warning C4581: deprecated behavior: '"never"' replaced with 'never' to process attribute
c:\...\basicpopupblocker\pubwhitelist\whitelist.h(69) : warning C4581: deprecated behavior: '"apartment"' replaced with 'apartment' to process attribute
This doesn't sound right: '"apartment"' replaced with 'apartment' ... I see quote difference here, but I checked the code, didn't see any change.
... and on the end couldn't compile. I am trying to learn from these (I am big time novice). It seems that New VS2005 is doing ATL differently.
So, what to do? I am getting discouraged her. I am thinking to find VS2003 and forget about VS2005, at least until I learn something.
Thanks.
-- modified at 10:05 Friday 30th December, 2005
|
|
|
|
|
From MSDN:
Compiler Warning (level 1) C4581.
Error Message
deprecated behavior: '"string1"' replaced with 'string2' to process attribute
This error can be generated as a result of compiler conformance work that was done for Visual C++ 2005: parameter checking for Visual C++ attributes.
In previous versions, attribute values were accepted whether or not they were enclosed in quotation marks. If the value is an enumeration, it must not be enclosed in quotation marks.
See Breaking Changes in the Visual C++ 2005 Compiler for more information.
Example
// C4581.cpp
// compile with: /c /W1
#include "unknwn.h"
[object, uuid("00000000-0000-0000-0000-000000000001")]
__interface IMyI : IUnknown {};
[coclass, uuid(12345678-1111-2222-3333-123456789012), threading("free")] // C4581
// try the following line instead
// [coclass, uuid(12345678-1111-2222-3333-123456789012), threading(free)]
class CSample : public IMyI {};
|
|
|
|
|
Search MSDN for "BHO" and you should find some. They are plain COM objects so it doesn't matter what version of VS you have.
Attributed ATL should be avoided entirely, it doesn't work as advertised.
--Mike--
Visual C++ MVP
LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
Ford, what's this fish doing in my ear?
|
|
|
|
|
I have use IPersistStreamInit to load a Html file,
then I directly return that Html data from the stream, but I have found out
all double commas had eliminated, stranged for this
Who can help me this?
|
|
|
|
|
Sorry , 'Double commas" should be 'Double qutotations'
Please Micosoft's engineer answer this problem, if having in here.
|
|
|
|
|
Hi,
I have a COM Component which has an ATL class.
Is there any way by which it is possible to write VARIANT to a binary file and read it back?
Similarly for BSTRs?
Please help..
Regards,
|
|
|
|
|
See the CComBSTR and CComVariant classes. They have Read/Write methods which operate on IStream interfaces. All you need to do is to provide a wrapper implementation of IStream , which uses your I/O functions.
--
Pictures[^] from my Japan trip.
|
|
|
|
|
Hello, I'm new here only having come across the wonderful resource recently. I've a quick question. Sorry if its very basic but I'm also very new to WTL.
I'm starting a new project in WTL and I'm mostly working off of the Alpha toolbar image sample from here. I'm trying to position a Splitter and I need to take into account the windows Rebar, but I can't figure out how the find out the height of the Rebar. RB_GETBARHEIGHT could probably do it, but I don't what hWnd I should use.
Any help would be appreciated, kind regards, Eoin.
|
|
|
|
|
|
I am trying to load a dll (Statically) into an out of proc COM exe. But as soon as I call any of the dll routines, the program crashes.
Any ideas will be greatly appreciated?
Thanks in advance.
Regards,
Misha G
|
|
|
|
|
istringstream is("hello world hello earth" );
string s,str;
str = is.str() ; //str = hello world hello earth
is >> s; //s = hello
str = is.str(); //str still = hello world hello earth
But i want the rest "world hello earth", what can I do?
|
|
|
|
|
i don't understand the question, ,so please explain it a bit better.
you only want to get the last 3 word out of the 4, or is it something else ?
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VisualCalc 3.0]
-- modified at 3:46 Thursday 22nd December, 2005
|
|
|
|
|
yes!
I want the last all words from the current stream pos.
|
|
|
|
|
find the first white space occurence in the string.
then you call .mid() from that position to the end of the string. that will do.
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VisualCalc 3.0]
|
|
|
|
|
zghelp wrote:
istringstream is("hello world hello earth" );
string s,str;
str = is.str() ; //str = hello world hello earth
is >> s; //s = hello
str = is.str(); //str still = hello world hello earth
But i want the rest "world hello earth", what can I do?
is >> s;
string s2;
getline (is, s2);
|
|
|
|
|
but what can I do with
istringstream is("hello world\n hello earth" );
when i want the rest "world\n hello earth",
|
|
|
|
|
zghelp wrote: but what can I do with
istringstream is("hello world\n hello earth" );
when i want the rest "world\n hello earth"
Try something like:
getline (is, s2, traits_type::eof());
The third argument is the 'delimiter' where getline stops.
|
|
|
|
|
hi,
i need to prepare a Add-in for Outlookexpress. Please tellme, how can i do that.
in that i need to add a menu to messagewindow
please suggest us ,how can i achieve this.
Thanks in advance
regards,
koti
spend every minute per success
|
|
|
|