|
You have 2 options:
-recompile the MFC code with the /clr switch on the Visual C++ compiler, and make the MFC functions you want inside a Managed C++ class.
-Export your MFC functions as a native dll and use Platform Invocation Services (P/Invoke) to call them.
Any remotely useful information on my blog will be removed immediately.
Judah Himango
|
|
|
|
|
In addition to what Judah said, you may want to check out one of several replies I've posted to this forum about calling methods (functions declared in a class) using P/Invoke. It's not straight forward like calling global functions because you have a 'this pointer' that you need to take into account, i.e. methods (at least virtual methods) must be called in the context of a block of memory for your class ('this') and all instance member fields cannot be evaluated with knowing the base address of your class.
Take a look at http://www.codeproject.com/script/comments/forums.asp?msg=771919&forumid=1649#xx771919xx[^] for more information. If you have already declared static class factories you do not need to do so again.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi,
is there a way to send an application into sleep for some Milliseconds?
Thanks
Ariadne
|
|
|
|
|
System.Threading.Thread.Sleep(5000);
Any remotely useful information on my blog will be removed immediately.
Judah Himango
|
|
|
|
|
System.Threading.Thread.Sleep( m );
where m is milliseconds
Gary
|
|
|
|
|
Hi,
I'm trying to write a [fairly basic] program that lets you send a message from one computer to another on the same network (either based on the name of the logged in user, or the name of the workstation itself -- undecided as of yet) and I'm struggling to figure out how to go about it.
---
The Scenario, or 'What I Want to Happen':
Joe Nobody loads up the application on his computer. He's presented with a drop-down menu that contains a list of users currently logged into the network, a text box for typing his message and a button that says 'Send!' He selects Katie Nobody from the list, types 'Hello Katie!' and sends it.
Katie, who also has the application running on her computer, sees Joe's message pop up. She reads it and decides to reply. She hits the 'reply' button on her incoming message window, types her reply in the messagebox provided for replying and sends her message back to him.
The two of them now have a window that connects them together without needed to re-state which user they're talking too and can continue their conversation for as long as they'd like to.
---
The purpose of writing the program is two-fold; I need a program that does this (and only requires minimal features) and I'm trying to learn more C#. I've been scouting around MSDN but, perhaps because I'm not sure where to start looking, I'm struggling to figure out how to begin. I thought about using MessageQueue -- is that a viable option?
If anyone can give me a couple of starting points for sending messages between networked machines or point me to references/articles, I would be very grateful!
Thanks in advance,
Keija.
|
|
|
|
|
Code generation for property 'MessageReadPropertyFilter' failed. Error was: 'Requested operation is not supported on this platform.'
(I'm running Windows 2000 on this machine.)
|
|
|
|
|
If both of your clients are .NET apps, and you're running within a local area network, .NET Remoting might be the solution for you.
There's some good articles on codeproject and on MSDN that show how to use .NET remoting. I'm certain I've seen an MSDN "instant messenger" like example that uses .NET remoting. A search on both sites would be useful.
Any remotely useful information on my blog will be removed immediately.
Judah Himango
|
|
|
|
|
Judah Himango wrote:
and you're running within a local area network
That's rather limiting for something that's pretty much limitless. Already the BCL provides both the TcpChannel and HttpChannel (and an internal channel for within a simgle process with multiple app domains) and the 2.0 BCL will define the IpcChannel . You can define any channel you want. Don't want to use TCP? Define a channel that uses IPX. Don't want to rely on an electronic transport layer? Define a channel that drives a small catapult that launches chicken eggs in defined patterns. It really doesn't matter; both the serialization and transport chains are independent and extensible.
So long as both applications are managed, .NET Remoting is your best option because it doesn't tie you down to so many restrictions (there's some, but that has more to do with serialization than anything).
...but please don't waste chicken eggs.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hehehe you know, when I was posting that I thought to myself, "Heath is gonna come by and chide me for saying 'within a LAN'" but hey IMO if you're doing remoting on a heterogeneous network like the internet, I would rather be working with Web Services. Just my opinion.
That said, we're using .NET remoting here at work and I absolutely love it. My only beef would be the problem with getting remote error messages on the server; don't know if it's a bug in 2.0 and 1.1, but often I cannot get remote error messages (occurring on the server) to be thrown on the client. With remote errors disabled, I get "For more info, enable remote errors on the server" returned to the client, and with remote errors enabled, the server locks up when throwing the exception to the client. Aside from that, and the few restrictions I've encountered (like you said, due to serialization), .NET Remoting seems pretty nifty. Wonder how it stacks up against Indigo...
Any remotely useful information on my blog will be removed immediately.
Judah Himango
|
|
|
|
|
You don't need Message Queue. All you need is Remoting.
You can implement this in two ways. Both would require that you have a central server application that your chat client checks in with to see who's logged in. This means that the Chat application is running on that persons computer(!), not that the machine is logged in!
You can have the central server dole out who's Chat application is logged in and what it's IP address is. This way, you can have direct communication between two clients without the need to have the server relay message for you. This would make GROUP chats difficult to implement though. It also greatly complicates the code on the client side, but simplifies the code on the server side.
The other method is to have the central server do all the message relaying for you. This would have the opposite effect on code complexity. The client side is simplified, but the server side gets complicated. This would give you the beneift of easier implementation of chat rooms though.
You could check out Picture Chat using C#[^] here on CP for a good example of how to implement chat.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
|
Hi Senthil,
Could I ask you how you achieve the peer discovery ? Can it be done
without using .Net remoting but just with c# ? Is it based on
some peer discovery protocol ?
Thanks for your help !
|
|
|
|
|
Is it possible to open html page in window applicaion?
the program language is c#.
|
|
|
|
|
Yes, use the mshtml control. There are many articles on codeproject about how to do this. here's one for example. I recommend you search the forums and articles before posting next time.
Any remotely useful information on my blog will be removed immediately.
Judah Himango
|
|
|
|
|
Thank you so much. I get your recommendation.
|
|
|
|
|
Hello
I want to make a wizard like the once in Access where we can find the path and select a database then the table and then the fields we want to work with..Is it possible?
Like is there any kinda ActiveX controll or some software I really would like to know..So if you know please tell me..
Thank you very much..
Have a nice day!
|
|
|
|
|
I could be wrong, but I believe the Genghis Project for .NET includes a wizard control that eases the creation of wizards.
Any remotely useful information on my blog will be removed immediately.
Judah Himango
|
|
|
|
|
There are several articles here on CP that cover wizards in C#.
- Nick Parker My Blog | My Articles
|
|
|
|
|
I've got a MyButton : Button class, and I would like to handle the events (like MouseMove, MouseUp, MouseDown) not in the form class but in the MyButton class. In the class where and how can I do it, because adding handler in MyButton constructor occurs error:
Form1 form;
this.MouseDown+=new System.Windows.Forms.MouseEventHandler(form.Mouse_Down);
|
|
|
|
|
override the OnMouse** methods of you base class (within your MyButton class)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsDataGridClassOnMouseDownTopic.asp
Gary
While you're waiting, read the free novel we sent you. It's a Spanish story about a guy named 'Manual.'
- Dilbert
|
|
|
|
|
..embedded control on each row??
I know a column can be created that will show a combobox, then all rows of that datagrid will have a combobox in that column.
BUT...
Is it possible to have a column that will allow you to show different controls on different rows?
E.g. visualise the following 2 column table, which has 3 rows:
Col1 Col2
Row1 Combo
Row2 Checkbox
Row3 Textbox
How can this be done? Would greatly appreciate the assistance of the .NET/c# experts out there...!
|
|
|
|
|
I don't think this is possible. The only thing that comes to mind would be if you set the column to type System.Windows.Forms.Control then did some hack to get each row to display the type of control you want, but I'm thinking this isn't possible. Maybe someone with more experience in this area can give you a more solid answer.
Any remotely useful information on my blog will be removed immediately.
Judah Himango
|
|
|
|
|
Hello,
I developed a Smart Device Application but some textBoxes are hidden when the SIP is activated so I want to reach the following situation (for now it works that the Input Panel is raised when the user clicks on a text Box):
whenever the user clicks on a text box and the Input panel is raised, the
code determines if the textbox is hidden by the raised input panel.
-if yes, the form is scrolled upwards till the focussed text box is above
the height of the input panel. this way the user can see what he is typing
in the textbox.
-when the input panel is disabled, the form contents are scrolled back to
the position they were before the panel was raised.
Can anybody help me with that problem?
thx
mat
|
|
|
|
|
does anybody have any information on transferring of files (e.g. .ppt slides, .pdf files, etc.) using sockets via the internet? also, are there any commands to check whether the system has been idle for a specified amount of time?
my group is developing a chat application and we very much appreciate any help you can give us. thank you.
vicky
|
|
|
|