|
You should call srand only once, for example in the DllMain.
|
|
|
|
|
Yeh, I got this sorted now. It was srand. Because the speed of accessing values and passing value is so fast it was passing same time into srand. SO now i got static int and it will make sure that srand only takes place once when the application is started.
Anyway thanks for all you guys support. THANK YOU ALL.
- Stop thinking in terms of limitations and start thinking in terms of possibilities -
|
|
|
|
|
Probably will be better exporting srand too, otherwise he needs to restart the executable each time he needs a different sequence.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
In order for what you have to work, you're going to need a really, really slow computer. The problem is not int vs. long vs. short , or ByVal vs ByRef , but rather that rndNum() is being called so fast, that each call to srand() is seeding with the same value. To demonstrate this, put a call to Sleep(750) between srand() and rand() .
Moving srand() to DllMain() is what you need.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
also, try using "Long" instead of "Integer" for the VB declaration. an Integer is 16 bits, a Long is 32 bits (like a C int)
|
|
|
|
|
Hi I did it but the results don't change much... cuz the MAX number I am thinking to use is 3000 so...
- Stop thinking in terms of limitations and start thinking in terms of possibilities -
|
|
|
|
|
1. You need to use the following declaration
Private Declare Function rndNum Lib "F:\Year - 2\CdllRndNum\Debug\CdllRndNum.dll" (ByVal iMaxNum As Long) As Long
killerp wrote: srand( (unsigned)time( NULL ) );
2. The above is a mistake. Don't initialise the random number generator each time you're calling it (and remember, time returns seconds).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
i may not be an expert but if all you need is a random number in VB you should use:
' Initialize the random-number generator.<br />
Randomize()<br />
' Generate random value between 1 and 6.<br />
Dim value As Integer = CInt(Int((6 * Rnd()) + 1))<br />
|
|
|
|
|
Hey Thanks for Reply, but I have already mentioned that I DO NOT WANT TO USE VB (and yes I do know how to do it in VB. For .NET there is another method available by using Random class and then Random.Next())
But anyway thanks for reply.
- Stop thinking in terms of limitations and start thinking in terms of possibilities -
|
|
|
|
|
Hi
How can I compare CTime with FITETIME?
|
|
|
|
|
Hint: one of the CTime constructors looks promising
CTime(
const FILETIME& ft,
int nDST = - 1
);
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
See here[^] if its helpfuls.
|
|
|
|
|
Hi all,
I m using VC++2005,and in my application i m using editboxcontrol for enter numeric values.
but now i have a problem how can i get this numeric value from editboxcontrol.
please anyone can help me.
thanks in advance.
|
|
|
|
|
By associating a variable to the control and calling UpdateData(TRUE) in your dialog class.
You could also retrieve the text of the window by calling GetWindowText on the control.
Anyway, it is a very very basic question and it seems that you really need a good book about MFC. You'll be much more efficient that asking questions on a forum whenever you have an issue.
|
|
|
|
|
Thanks
Can u please suggest me a book for MFC because i m new in this field
|
|
|
|
|
"Programming Windows with MFC" by Jeff Prosise.
|
|
|
|
|
|
ThatsMe. wrote: but now i have a problem how can i get this numeric value from editboxcontrol.
By using GetWindowText() . Read this for more.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I'm currently working on a project where users create objects (as many as they like). The names of these objects are then used in a command prompt to select and then display their information. I can currently make as many objects as I like but using their names as the menu headings is proving to be difficult.
Here is an example of what I am after. Think of this as output with the numbers down the side refering to a number selection.
1.create new object
2.quit to main menu
Please choose one:
so a user selects 1 and creates a new object with the name "score". After creation the user is sent back to the main menu looking like this after the object is created
1.score
2.create new object
3.quit to main menu
If the user was to select score this would then bring up the object data somethiing as follows:
Name: Score
Score: 24
Modifier: 2
I know how to retrive only the name of the object and display it fine but using it as a selection as I said before is proving to be difficult. If anyone has any insight on something like this in c++ please reply
Thanks.
I'm coding this in c++.
|
|
|
|
|
It is very difficult to understand your problem, please keep in mind that we don't see your code, so we have no idea on how you implemented this.
Please provide some relevant code (and format it properly using the pre or code tags) and give some more detailed explanation by taking into account that need to understand what you are talking about.
What is an "object" in our case ? A class ? If yes, how does it look like ? And why can't you extract other information than the name ?
|
|
|
|
|
Sorry should have stated myself clearer. I can extract any of the data items from the created objects. The objects are instances of my designed class.
The class that im using is basicly with member functions taken out:
class thing
{
string name;
double price;
string desc;
}
I'm using vectors to store my objects since I'm only just learning to code in c++ and don't quite understand pointers but have experiance with other languages like modula2.
|
|
|
|
|
Ok, but what is the problem ?? You still didn't explain precisely where you are stuck. Please, try to be as clear as possible.
|
|
|
|
|
The problem I'm having is how do I code somthing thats going to be generated dynamiclly.
Static menus are simple:
<pre>cout << "1.Create new object"
<< "\n2.Quit to main menu"
<< "\n Please choose one: ";
cin >> choice;
if (choice == 1)
{
createObject();
runMenu(); //would be done recursivly if you get my drift
}
else if (choice == 2)
{
runMenu();
}
else
{
error();
}
</pre>
That I can hard code the different numbers to do different things, but since I don't know how many object the user will create I can't really hard code it. I hope that helps somewhat.
|
|
|
|
|
Ooookay, that makes finally a bit more sense . So, as you said, your objects are stored in a vector and you would like to add a line in your 'menu' for each element, right ?
So, simply do something like this:
int menuIndex = 1;<br />
vector<MyObject>::iterator iter = m_vector.begin();<br />
for (iter; iter!=m_vector.end();iter++)<br />
{<br />
cout << menuIndex << ". Show details of element " << (*iter).name << endl;<br />
}<br />
And then, for the choices, you check if what the user entered is between 1 and m_vector.size(). If that's the case, then you can retrieve this element from the vector and display its content (m_vector[choice]).
Does it make more sense ?
|
|
|
|
|
You are wanting to do a simple "text interface".
Well, you need a lot of std::cout, std::cin, and a "state machne"
for example :
you have this menu ( I assume typing the number will "do" the action)
1.create new object
2.quit to main menu
user press "1" this will do the "create new object" action and print the same menu again (stays in the same state); user press "2" then the program goes to a new state) and print the "main menu" (for example )
1.score
2.create new object
3.quite to main menu
user press "1" to do the score state (or action).
'anyway, I hope you get the picture.
One suggestion, is to take a piece of paper, a pen and draw the different link (arrows) between each action and each "state" and after the "scenario" is drawn, try to put in in code. (lot of if , case , loops , ...
|
|
|
|