|
i'm working on an existing VC6 application which has a plugin architecture supporting dlls which export and accept pure virtual inteface pointers. ie after loading the dll, the exe calls an exported C function on the dll which returns a pointer to a PVI. the exe then calls methods on the pPVI somtimes passing back a pointer to another PVI for the dll to manipulate.
now, this is trivial using traditional c++ and i've done it many times but more recently people writing the plugins has asked to use c#, VB.NET and other more 'modern' languages. the trouble is that i've very little experience of .NET programming and the issues around allowing managed and unmanaged code to communicate. and the more i google the less clear it becomes.
any suggestions for further reading matter or urls to sample code would be sincerely appeciated.
.dan.g.
AbstractSpoon Software
|
|
|
|
|
how can i show the icon of my application on system tray bar when windows start up?
Thanks
|
|
|
|
|
Two different questions:
1) Icon in system tray: System.Windows.Forms.NotifyIcon is the class (and sample) you want.
2) Running on windows start: I don't know of any API for this but adding a registry key for your application will do:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
String Key: AppName
Value: Full Path to Exe
|
|
|
|
|
for the second answer:
how can i create a registry key during setup of my application?
on the value "Full Path to Exe", how can know it (and set it on setup time) if the user during the setup chooses a custom directory on its computer?
|
|
|
|
|
If you're using an MSI-type installer project in Visual Studio, you can add registry keys via the registry view of said project.
Drew Noakes
drewnoakes.com
|
|
|
|
|
hi
1) drag and drop the Notify Icon from the tool box.
2) In the Icon properties, you can set the Icon and Visble as true
Then it appears when to the tray bar.
3) Do you need to start the Program at the start up,Simple way is added to application shortcut start up directory or do it using setup wizard .
regards ,
pubudu.
|
|
|
|
|
I get an E_ACCESSDENIED error everytime I try to acquire the keyboard or mouse in anything other than background nonexclusive mode. I know that you can't do foreground in Visual Studio for the keyboard, but this happens even outside of it. Is it even possible to get anything else? I'd at least like foreground nonexclusive for the keyboard, and the same would be nice for the mouse but not as important.
EDIT: I set it up to unacquire the devices when the form is deactivated and reqcquire them when activated. This does the job but I'd still like to do it right.
|
|
|
|
|
Like in sonic, you move right, the screen moves right with you.
Any ideas??
|
|
|
|
|
Well, there are a couple approaches. The simplest one is that you have the entire universe sitting as a huge bitmap, and you blit only a section of it on the screen. Very fast, very memory intensive.
The other approach is that your universe consists of tiles, and you create a virtual space that consists only of the screen size plus the width of a tile on the left and right, the height of a tile on the top and bottom. Now you can move only within the confines of a single tile boundary. So, when you reach the edge, you replace the tiles with new ones and shift the screen coordinates. Not as fast, but it takes up a lot less memory.
There's websites on this stuff that can explain it a lot better than I just did.
Marc
MyXaml
Advanced Unit Testing
YAPO
|
|
|
|
|
I would like to change the backcolour of the display text but there does not seem to be a property to do this. Is there a way to change the backcolour at runtime ?
Thanks
Stephen
|
|
|
|
|
I'm trying to get familiar with DirectX.DirectDraw to de able to draw simple graphics to the screen. Is there anything similar to Transform property of Graphics class in the classes that enable simple drawing via DirectX (i.e. surface). Does anybody know a good book/tutorial to get familiar with the basics of (2D) drawing in DirectX?
|
|
|
|
|
Search google for :
Sams.Managed.DirectX.9.Kick.Start.Graphics.Game.Prog
It's really a good book ,and it will help you.
|
|
|
|
|
Okay I've been fooling around with a client/server file sending, and I have it working, except the new file being written is not the same as the file being sent. Obviously this is due to some sort of Encoding error as I am sending the data via UTF8 encoding. Basically I want to know if I can convert the UTF8 code to binary and write the data to a file, or if not, what encoding should I send and receive data with? I use the UTF8 for all the other messages. Thanks.
|
|
|
|
|
Why don't you use a BinaryReader/BinaryReader so that you can read and write a byte[] array from file directly into the BinaryWriter and send it across the network?
That's the way I'd do it.
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
For some reason if I do the BinaryReader it says it's in use by another process??
|
|
|
|
|
Ok i've been wanting to know how to do this for a while now:
How do i include files like pictures, sounds in my application and then use them.
This is so i dont have to keep the files where people can get to them and i dont have to keep copying all of those files...
So how do i do it?
|
|
|
|
|
|
|
i need help to set Html file as a desktop wallpaper using C#
thx for ur interest
|
|
|
|
|
Hi Forum,
I am a newbie in C# even though I have been coding since in MATLAB since last 7 years. Now, I want to develop few library files for my scientific calculations. My calculations involve large matrix manipulations, say a calculating the inverse of a 10000*10000 matrix. I have tried this in C and my code compiles all right, but gives a runtime error. I think this is due to the fact that the computer memory can't handle such a long matrix. I have not tried it in C# though. But I would like to know if there is anyway I can do manitrix manipulation of large matrix in C#.
I have found many matrix manipulation library files in C# by different people in the CODEPROJECT website, but I ain't sure if they will handle such large matri manipulation.
Regards,
Amit
|
|
|
|
|
You are right: Your runtime error will most probably result from the lack of memory. Having such a large matrix with for example a 8 byte type (double, long etc) will need over 760 mb in ram. When calculating the inverse you will need another 760 mb. This logically gets worse when adding or multiplying
Since windows processes have only a limited usage of memory (I think 2 gig is the boundary) no language you choose will handle several such large matrices in memory. If you really need this you will have to use some 64 bit OS.
One solution for this is having those matrices not directly in memory but on your harddrive and accessing and writing directly to your files, but this will result in much (!!!) work by yourself.
|
|
|
|
|
Thanks Rob!!! You gave a really helpful insight into the problem. I would like to know more about how to write the matrix into the harddrive and access from there instead of memory. Do you have any suggestions where should I start?
Regards,
Amit
|
|
|
|
|
Principally its relatively easy.
First you have to specify some sort of file structure. In this case the file could start with 2x4bytes containing the info about the size of the matrix. After that I would just place all elements of the matrix row by row, column by column into the file.
If you have such a file you should implement some sort of access wrapper which holds an open stream to the file and positions it to the correctly depending on what elements should be read. The formula is relatively simple. Assuming each element has a size of 8 bytes position x,y would be at the position 2 * 4 + x * 8 + y * matrixWidth * 8 .
The ByteConverter class will help you to transform specific datatypes to pure byte arrays which can be written to the stream. To boost performance the access wrapper will also need the ability for stack reading (means a whole row or several rows in one catch) and probably also some caching or buffering mechanisms. But this greatly depends on what calculations you need.
I once made such a thing for some very special matrix types (but those were only 4 byte floating numbers) and if you put enough brain into it it can work really well. But keep in mind that for example calculating the inverse of a matrix means that youll have to read through the whole 760 mb file and then write it to another 760 mb file. So the bottleneck with this solution will always be the IO operations no matter how fast the algorithm behind is. The advantage is that you can nearly work on as many matrices at the same time as you want.
If you can reduce the size of each element as far as you can, e.g. take floats instead of double or short instead of long. Probably even byte will do it. Think carefully as it will greatly influence the performance and data size.
|
|
|
|
|
hi,
You probably know math better then I do (e.g you do scientific calculation ), so consider this more like my curiosity... do you really need so big matrix in memory? I mean if matrix is somehow special (e.g has lot of zeroes or something), IIRC you don't have to store it whole in memory... something like if rank of matrix NxN is lower then N you can store only base columns and coeficients of linear combination for other columns... hmm at least my lecture text say so If it's "just damn big matrix" then there isn't much you can do, IMO.
As Robert said there must be some techniques for working with matrixes in external memory, too.
It could be interesting topic for an article...
David
Never forget: "Stay kul and happy" (I.A.)
David's thoughts / dnhsoftware.org / MyHTMLTidy
|
|
|
|
|
Thats right. But thing is that if you want to have an inverse, the rank of a n*n matrix would have to be n. but, it was really nice of you to reply and give a thought to my problem. In fact, if you really look at reply of Rob, it really helps the cause I guess. Thanks Rob for your reply.
Now, one of the questions come to my mind is that is matrix manipulation so hard or so difficult. Is there some secret algo for its calculation? I mean the best selling (and of course, expensive) software for doing mathematical calculation is , no doubt, MATLAB. Why can't we have some more software like MATLAb, so that MATLAb gets cheaper due to the competition and we have a little heavier purse.
:P
Amit
|
|
|
|