|
Hello,
I was just wondering whether I should order Visual Studio.NET Beta 2 or Release Candidate. Is Beta 2 better than Release Candidate, or is it buggy since it is a beta?
Do any of them have any time periods like 30 days or so?
Thanks,
vinuk.
|
|
|
|
|
The RC is time and feature limited. I'd expect they would take steps to make sure the betas are useful enough to try and not finished enough to be viable once the proper release arrives.
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
I have used this code to create a CStringList linked list, once a pointer to a string in the list is found, it is changed into 4- 8bit characters, then back again... however this results in a lack of accuracy. Please help (if u run the code as it is ur likelly to get a first chance exception).
POSITION pos,poss;
char letter;
UINT a,b,c,d;
UINT p;
CStringList strl; /// create CStringlist
strl.AddTail("Line One"); /// Add a few lines
strl.AddTail("Beer Number 2 please");
pos=strl.GetHeadPosition(); /// get pointer to head position of list
p=(UINT)pos;
printf ("%s\n",strl.GetAt(pos)); /// get pointer to position of line one
/// get position pointer as a UINT
printf("p= %d\n",p); /// output position as UINT
a=p>>24; // get last 8 bits
printf("a=%d",a);
letter=(static_cast<unsigned int>(a)); /// convert to 8bit char
a=(static_cast<char>(letter)); /// convert back to UINT
printf(" %d\n",a);
a=a<<24;
b=p<<8;
b=b>>24; // get 2nd to last set of 8 bits
printf("b=%d",b);
letter=(static_cast<unsigned int>(b)); /// convert to 8bit char
b=(static_cast<char>(letter)); /// convert back to UINT
printf(" %d\n",b);
b=b<<16;
c=p<<16;
c=c>>24; // get 3rd to last set of 8 bits
printf("c=%d",c);
letter=(static_cast<unsigned int>(c)); /// convert to 8bit char
c=(static_cast<char>(letter)); /// convert back to UINT
printf(" %d\n",c);
c=c<<8;
d=p<<24;
d=p>>24; // get first set of 8 bits
printf("d=%d ",d);
letter=(static_cast<unsigned int>(d)); /// convert to 8bit char
d=(static_cast<char>(letter)); /// convert back to UINT
printf("%d\n",d);
p=(UINT)a|b|c|d; // use or to add the sets of 8 bits together
printf("p with or =%d\n",p); // display p using or (these values should be the same as
printf("p with + =%d\n",a+b+c+d); // display p using + the intitial p)
poss=(POSITION)p;
getch();
printf ("%s",strl.GetAt(poss));
getch();
}
|
|
|
|
|
I still don't get what you're trying to do. Your casts are wrong, and you're assuming a POSITION is a pointer to one of the list elements. Don't make any assumptions about opaque data types like that (or HWNDs or any handles for that matter).
Oh wait, you just want to pick out the individual bytes of the pointer address? Use the bitwise operators, that's what they're there for:
BYTE a,b,c,d;
void* p = 0x1234abcd;
a = ( p & 0xFF000000 ) >> 24;
b = ( p & 0xFF0000 ) >> 16;
c = ( p & 0xFF00 ) >> 8;
d = ( p & 0xFF ); And just FYI, if you want the value of a pointer, just do this:
printf ( "%p", p );
--Mike--
My really out-of-date homepage
Buffy's on. Gotta go, bye!
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan.
|
|
|
|
|
thanks thats very helpfull Happy New Year
|
|
|
|
|
You have GOT to learn how to use the debugger.
Here is the output I got prior to the crash:
Line One
p= 3089908
a=0 0
b=47 47
c=37 37
d=0 0
p with or =3089664
p with + =3089664
Press any key to continue
Now, the first thing you should have done it verify that the values of a, b, c, and d are as expected. It turns out that the hexadecimal value of p is 0x2f25f4. Now, how can d be 0 when the low byte of p is f4?
d=p<<24;
d=p>>24;
printf("d=%d ",d);
letter=(static_cast(d)); d=(static_cast(letter));
If you look at that code, there are only two lines of code prior to the display of the value of d. The first line "d=p<<24" although odd, just shifts the low 8 bits into the high 8 bits. The bits we are after are still there, just in a strange place. The second line "d=p>>24" shifts the high 8 bits down into the low 8 bits. Hmm, well since that will cause us to lose the bits we are interested in, then that line of code must be wrong. I would imagine that you ment to type "d=d>>24".
Once that error is fixed, it would be functional.
Lets clean up the code some.
First, I don't understand why you are so hell bent on casting to and from a charater. There really is little point.
a = p & 0xFF000000;
printf("a=%d",a >> 24);
b = p & 0x00FF0000;
printf("b=%d",b >> 16);
c = p & 0x0000FF00;
printf("c=%d",c >> 8);
d = p & 0x000000FF;
printf("d=%d",d);
That code isolates each byte of the address just fine without all that extra conversion. The right shifts just aren't needed at all.
Tim Smith
Descartes Systems Sciences, Inc.
|
|
|
|
|
No i dont really know why i was using the static cast i've now used the code u gave me and understand it fully, my problem was not knowing how to enter a hexadecimal number in C (amongst other things) and It did work when u pointed out the mistake but as ur code is so neat and tidy i will use that thankyou very much .
If u would like to know i've been writting scrabble, and using 2 CStringLIst's one for the dictionary a word list and the other a list of anagrams, i've crossed referenced the anagram list with the dictionary, so while searching through the anagrams it's quickly possible to reference back to the dictionary. I did try to use a CUIntArray list, but the problem with that was there seamed to be no operator function to copy the list from one list to another (not that i can remember why i needed to do that now)... anyhow my scrabble is now partially up and running at much faster speeds than before so thanks again!
|
|
|
|
|
I wrote:
********
bool IsThere_A_Modem()
{
RASCONN * lpRasConn;
DWORD dwSize, dwConnections, dwRet;
lpRasConn = (LPRASCONN) GlobalAlloc(GPTR, sizeof(RASCONN));
lpRasConn->dwSize = sizeof(RASCONN);
dwSize = sizeof(RASCONN);
dwRet = RasEnumConnections(lpRasConn, &dwSize, &dwConnections);
if ( dwRet )
{
printf("RasEnumConnections failed: Error = %d", dwRet);
GlobalFree(lpRasConn);
return 0;
}
GlobalFree(lpRasConn);
return 1;
}
RasEnumConnections() returns with Error 603 - Buffer is too small.
How/What buffer should i enlarge???!!!???
--BlackSmith--
"With the help of all mighty", 2001, Me.
|
|
|
|
|
Hello, the codegurus around the world.;)
I think that you asked the same question before.
I found this code for RasEnumEntries example to recreate the memeory size.
So, I'm not sure that this works?
if (dwRet == ERROR_BUFFER_TOO_SMALL)
{
if((lpRasEntry = (LPTASENTRYNAME)realloc(lpRasEntry, (UINT)dwBuf))
!= NULL)
dwRet = RasEnumEntries(NULL, NULL, lpRasEntry, &dwBuf, &dwEntry);
else
{
}
}
Please, don't send me your email about your questions directly.
Have a nice day!
Sonork - 100.10571:vcdeveloper
-Masaaki Onishi-
|
|
|
|
|
1). GlobalAlloc returns a HGLOBAL of which GlobalLock must be called to return a valid pointer.
2). If RasEnumConnections is trying to return two or more connections then your buffer isn't big enough. Try allocating a large number of RASCONN's and pass that in.
Joel Lucsy (jjlucsy@concentric.net)
|
|
|
|
|
This code checks if you are connected to internet, guess that is what you want (paste it into a file and include the file in the file that you call IsRasConnected()):
// It return TRUE if yes or FALSE is not
//// RAS Connect status function
////
//// Written by Gilad Novik
//// For any questions or comments, gilad@bmidas.com
#ifndef _RASSTATUS
#define _RASSTATUS
#include <ras.h>
// We need to declare the functions type
typedef DWORD (WINAPI *RasEnumConnectionsType)(LPRASCONN lprasconn,LPDWORD lpcb,LPDWORD lpcConnections);
typedef DWORD (WINAPI *RasGetConnectStatusType)(HRASCONN hrasconn,LPRASCONNSTATUS lprasconnstatus);
#ifdef _UNICODE
#define RasFileName L"RASAPI32.DLL"
#define RasEnumConnectionsName L"RasEnumConnectionsW"
#define RasGetConnectStatusName L"RasGetConnectStatusW"
#else
#define RasFileName "RASAPI32.DLL"
#define RasEnumConnectionsName "RasEnumConnectionsA"
#define RasGetConnectStatusName "RasGetConnectStatusA"
#endif
BOOL IsRasConnected()
{
HINSTANCE hLib = LoadLibrary(RasFileName); // Try to load the library
if (hLib == NULL)
return FALSE; // Return FALSE if we can't find it
// Get functions address
RasEnumConnectionsType _RasEnumConnections = (RasEnumConnectionsType)GetProcAddress(hLib,RasEnumConnectionsName);
RasGetConnectStatusType _RasGetConnectStatus = (RasGetConnectStatusType)GetProcAddress(hLib,RasGetConnectStatusName);
BOOL bResult = FALSE;
if (_RasEnumConnections && _RasGetConnectStatus) // Check if it is valid pointer
{
RASCONN RasConn;
RASCONNSTATUS RasConnStatus;
RasConnStatus.dwSize = sizeof(RASCONNSTATUS); // We need to set the size of the structure
DWORD dwConnSize = sizeof(RASCONN);
DWORD dwRasCount = 1; // We only retrieve one connection
RasConn.dwSize = dwConnSize; // We need to set the size of the structure
bResult = // Let's check it out !!!
(((*_RasEnumConnections)(&RasConn,&dwConnSize,&dwRasCount)) == 0)
&& (((*_RasGetConnectStatus)(RasConn.hrasconn,&RasConnStatus)) == 0)
&& (RasConnStatus.rasconnstate == RASCS_Connected);
}
FreeLibrary(hLib); // Don't forget to unload the library from memory
return bResult;
}
#endif // _RASSTATUS
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
I'm having some trouble opening a file in my application. For some reason, it's throwing a debug assertion when I select File->Open from the menu. The dialog doesn't even come up. When I track it down, it looks like it is being passed some junk data that is longer than the maximum allowable length of a file name. I'm not sure how this is happening since I have not touched the code. If I save a file first and then, immediately choose File->Open from the menu, it works fine and I can open a file; but, if I do anything between saving and opening or if I just open straight away when the application starts, I get the assertion.
Any thoughts?
|
|
|
|
|
I'm assuming that this is an MDI or SDI app. How do you handle the initial File New operation when the app starts up? Just guessing that you might be doing something in OnFileNew() that causes File->Open to fail. But if you do File->Save before the File->Open, the OnFileSave() cleans up what you may have done.
|
|
|
|
|
It is an MDI application but I am just using the code provided by the app wizard for the handling of the Save and Open file messages. I'm not sure what I'm doing that would pass in incorrect information. I guess I'll just try to track down where the bad data is getting passed from. I just thought that someone might have been having the same problem as I am and might know the answer. Thanks for the help.
|
|
|
|
|
Hi,
Does anyone know how to turn the lights on and off from a dialog app?
Thanks.
==================================================
The Eclypse
|
|
|
|
|
Try the knowledge base for article Q177674. It's old but should help you out.
You first need to query the state and then depending upon the OS, use different API calls to toggle the state. Not as simple as say 'Turn on NUMLOCK', unfortunately.
Chris Meech
|
|
|
|
|
I use such code to turn Capslock on/off in WinNT/2000:
// Description :
// Turn CapsLock on/off
// Source: MSDN topic "keybd_event"
void SetCapsLock(BOOL bState)
{
BYTE keyState[256];
GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_CAPITAL] & 1)) ||
(!bState && (keyState[VK_CAPITAL] & 1)) )
{
// Simulate a key press
keybd_event( VK_CAPITAL,
0,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_CAPITAL,
0,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
|
|
|
|
|
How can i (Programmatically) check if my Modem is currently connected to the internet?
--BlackSmith--
"With the help of all mighty", 2001, Me.
|
|
|
|
|
use RasGetConnectStatus, RasEnumConnections
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
I've got a problem...
I've used "CFtpConnection::OpenFile()" to open a file at a FTP server. It returns a CInternetFile*. I've called it "pInternetFile"...
My problem is that I'm trying to use "pInternetFile -> GetLength()" to retrieve its size in bytes, but the function always returns 0 !
What's wrong ?
|
|
|
|
|
How to make BEEP in the computer speaker?
I mean the speaker that you find inside the computer.
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
Beep(300,150);
300 is in Hz
150 is in milliseconds
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
I doesn't work!?
The sound is playing in the speakers that is "connected" to the sound card!
It doesn't play in the speaker in the computer...
I run Win ME
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
There is a good chance that your hardware guy connected the PC-speaker to your sound-card. I am not sure about this, but it seems a likely possibility.
I have Win 2000. The beep comes out of my PC speaker and not through my speakers [I don't have speakers though I have a sound card. I use ear-phones]
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
I physically disconnect the speaker on every PC I use, and Beep works through my soundcard ( possibly as a result ?? )
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|