|
WhiteSky wrote:
three reason
i like third Reason most
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
i would like to get some help from you guys. i am doing porject on PCINfo A-Z which is on java. i am attemting to do using JNI( Java Native Interface) through Visualc++.
my project basically deals about displaying information of processor, memory, ram, cache etc. like BenchMark tools.
so i would like to get some help and if any one of the codeproject member can suggest me as far possible.
hopping to get some help.
thanks
contact at:
khanalforarjun@hotmail.com
khanaltoarjun@yahoo.com
khanaltoarjun@gmail.com
|
|
|
|
|
I don't know how to do it, but I would eliminate your e-mail addresses from the message, you will be heavily spammed if any spam guy finds thos addresses, and everybody will be able to answer your uqestion as I've done by clicking the answer button.
Sorry for not answering your question...
|
|
|
|
|
>>hi everybody
Hi Dr Nick!
I'm not sure about the JNI stuff (wrong message board for that) but some Windows APIs may be
helpful...here's a start:
GetVersionEx()
GetSystemInfo()
GlobalMemoryStatusEx()
|
|
|
|
|
Is it possible to insert an element directly into it's 'right' place in an ordered vector, instead of using push_back() and then sort()? If not, is it possible with a list?
Thanks,
Avi.
|
|
|
|
|
You can use insert, but you have to march through the vector/list to find the correct location to place it.
Alternatively, you can use the set template which will always be sorted (but requires uniqueness) or multiset (which will be sorted and stores non-unique items in a vector at each location).
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Thanks, but maybe it will be better to keep it a vector and use the algorithm find_if() (just foun out about it...) and then insert()
Avi.
|
|
|
|
|
That all depends on what you are using it for, so whatever solution that works best for what your project needs is the one you should use (just make sure have a reason for picking a particular solution over another).
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
find_if is a bad choice if the vector is sorted as you'll get linear performance instead of logarithmic (for the search). Use std::lower_bound instead.
Steve
|
|
|
|
|
Use std::lower_bound followed by std::vector::insert . e.g.
using namespace std;
vector<int> vec;
int newval = 5;
vec.insert(lower_bound(vec.begin(), vec.end(), newval), newval);
Steve
|
|
|
|
|
Thanks Steve,
This is exactly what I was looking for.
Avi.
|
|
|
|
|
You often need to add or remove from the end?
You need it only occational but in time critical situations?
You do need the guarantee that your items are stored in adjacent places?
(Double-use of &vec[0] as a C-Array for example)
Then use the vector /lower_bound Stephen Hewitt proposed
If you only need a sorted storage, you would be better off with set/multiset.
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
I have written a server using CAsyncSocket functions
Create, Listen, Accept, Send, Close etc. similar to the EchoServer program from The Code Project.
I create a single Listening port using
m_Server_Connection.Create(Client_Port);
m_Server_Connection.Listen();
I accept connections using
m_Server_Connection.Accept(m_Receive[this_client]);
//m_Receive[client] is an array of six CAsyncSocket
Communication with a client is done using
m_Receive[this_client].Send(msg,strlen(msg));
or
m_Receive[this_client].Receive(pBuf,pBufsize);
My problem is, when a client disconnects the connection is closed but..
How do I determine which connection is closing when OnClose is serviced?
I only accept 6 connections and want to re-use the m_Receive[x] entry
|
|
|
|
|
OnClose() will be called for/on the socket object that closed. Maybe store the array index in the
socket class so you know which one to free up for reuse in the array.
You'll need your own socket class derived from CAsyncSocket and make an array of those instead
Mark
|
|
|
|
|
I cannot see how to link the array index to the socket.
I am using a derived class called MyCsocket similar to the type Jobin Wilson uses in - Socket Programming with MFC (part 1)
can you show an example of what you mean.
|
|
|
|
|
Depends on how and when you are creating MyCsocket object. If they are created ahead of time
(before a connection is made) then add a function to set the index later.
A more resource efficient way is to create the socket when a connection is made - from the OnAccept()
in the listener socket (this way you only create a MyCsocket object when needed). In that case
pass the index to the constructor and use Attach() to attach the SOCKET from the listener to the
MyCsocket object.
Mark
|
|
|
|
|
Thanx
|
|
|
|
|
Alternatively to an index you could give each socket (incoming connections) a status value. Something like UNCONNECTED, ACTIVE, DEAD... and cleanup in your server code all dead sockets from time to time. This has the advantage of handling TCP close properly (e.g. you can disconnect a socket and wait until the other side has received all pending data and closes its end).
Hope it helps.
M
|
|
|
|
|
Cool thanks!
You should maybe post your reply to cgb143 as well
Cheers,
Mark
|
|
|
|
|
Didn't I do that?
/Mark (aka Moak)
|
|
|
|
|
Hi,
I want to create a MPEG movie from a set of bitmaps(500+). How can I do this? Which technology should I use for this(DiretX etc)
Regards,
Hemant.
|
|
|
|
|
If you are prepared to save in AVI or WMV format instead of MPEG, there is a lot more information on CodeProject. CodeProject does not have much on MPEGs, probably because the format is not supported directly by MS.
When I wanted to save an AVI file, this article www.codeproject.com/bitmap/createmovie.asp[^] was very useful.
|
|
|
|
|
The Windows Media Format SDK works pretty well.
There is an MPEG 4 codec available as well as full WMA/WMV support.
Windows Media Downloads[^]
Mark
|
|
|
|
|
Hi,
Thanks for reply.
I just searched the MSDN for Windows Media format SDK. But says about only ASF format.
Here is para from MSDN SDK introduction
"The Microsoft® Windows Media® Format 9 Series Software Development Kit (SDK) enables developers to create applications that manipulate digital media stored in files conforming to the Advanced Systems Format (ASF) file structure"
It says nothing about MPEG. Is it still possible to use Windows Media format SDK.
Regards,
Hemant.
|
|
|
|
|
Yeah sorry support is limited....here's what the SDK says...
The Windows Media Audio and Video Codec Interfaces also enable access to some legacy
codecs, including Windows Media Video 7 and 8, Windows Media Screen 7, the older Microsoft
MPEG-4 codecs, and the Microsoft ISO MPEG-4 codecs.
Note This documentation does not cover these legacy codecs; it only covers the Windows
Media 9 Series and later codecs.
For older codecs, use the same procedures as when using the Windows Media 9 Series codecs,
however, remember that not all features are supported in all codecs. In addition, the MPEG-4
codecs are not supported in the video encoder DMO.
The codec is there but I've never tried actually writing a MPG/MPEG file with it though.
I suppose it writes an ASF format file compressed MPEG-4.
I do know it works - I use it extensively (for Windows Media).
I don't know of any FREE mpeg writers that don't violate someone's license.
MPEG Licensing[^]
Mark
|
|
|
|