|
wow, that is a very tough question you have there.
waxie
|
|
|
|
|
First:
Read about PC boot procedures and events. You could also look at a free OS (Linux? FreeDOS?) in order to learn how they implemented that. Or you could resort to a "boot-manager" ala LILO or GRUB and try to build on that.
You also need to read about processor modes (real mode, protected mode, how to switch between them, etc.).
When you have a basic OS up (probably mostly ASM-code) you can think about porting a compiler (GCC?), probably in an older version, to work on your OS. Remember that almost all "new" compilers are compiled by an "old" compiler.
If you are that far, think about porting "standard tools" like directory browsing (have you decided on a partition format yet or are you gonna create your own?) and a driver framework.
Building a VERY BASIC OS may not be too difficult. I remember seeing a book about that once, which claimed that you could write your own "basic" OS within a few weeks of work.
I hope this helps
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
That's like asking "How do I write a 3D game?" such a broad question that if you ask it you aren't ready to write one.
8bc7c0ec02c0e404c0cc0680f7018827ebee
|
|
|
|
|
Hi,
Could you provide me a code snippet on how to acquire the IP address of the computer? I'm not using .NET just a pure visual c++ IDE. I just want to get the ip address of my computer and store it in a string.
If you could give me an idea on how to do that without using the .NET environment, I'd really appreciate it very much.
Thanks,
Christina J.
|
|
|
|
|
Look up GetIpAddrTable in MSDN.
|
|
|
|
|
Hi,
IS this what yoo are looking for?
struct hostent *Host;
SIZE_T t=100;
CString szIP , szName;
char *host_name = new char[100];
gethostname(host_name,t);
Host = gethostbyname(host_name);
szName = host_name;
szIP = inet_ntoa(*((struct in_addr*)Host->h_addr));
delete []host_name;
Regards,
Eli
|
|
|
|
|
hi everybody,
i need all computer name in a network fastly but i have make a following code which is able to get all machine name but its time taken i am giving code for you if there is possibility to change in this code to get fastly so please change this code and reply me ASAP.
BOOL CMessangerDlg::Enumration(int level, NETRESOURCE *pnr, CListCtrl *clistctrl)
{
DWORD rc;
HANDLE hEnum;
CString strTemp;
DWORD count, bufsize, ui;
NETRESOURCE buf[200];
const char *type, *cont;
//GetDlgItem(IDC_BTN_SEND)->EnableWindow( FALSE );
WORD version;
WSADATA wsaData;
int rVal;
version=MAKEWORD(1,1);
rVal=WSAStartup(version,(LPWSADATA)&wsaData);
rc = WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, pnr, &hEnum );
if ( rc == ERROR_ACCESS_DENIED )
{
return 1;
}
while ( 1 )
{
count = (DWORD) -1L;
bufsize = sizeof buf;
rc = WNetEnumResource( hEnum, &count, buf, &bufsize );
if ( rc != NO_ERROR )
break;
Sleep(0);
for ( ui = 0; ui < count; ++ ui )
{
//AfxMessageBox("hello2");
switch ( buf[ui].dwDisplayType )
{
case RESOURCEDISPLAYTYPE_DOMAIN:
type = "domain"; break;
case RESOURCEDISPLAYTYPE_GENERIC:
type = "generic"; break;
case RESOURCEDISPLAYTYPE_SERVER:
type = "server"; break;
case RESOURCEDISPLAYTYPE_SHARE:
type = "share"; break;
default:
type = "unknown"; break;
}
cont = ( buf[ui].dwUsage & RESOURCEUSAGE_CONTAINER )? "container": "";
if(level==2)
{
//AfxMessageBox("hello3");
CString networkmachinename;
CString str;
str=buf[ui].lpRemoteName;
str.Remove('\\');
LPHOSTENT host=gethostbyname(str);
//AfxMessageBox(str);
if(host==NULL)
{
//AfxMessageBox("one machine is off");
continue;
}
else
{
clistctrl->InsertItem(li," ");
clistctrl->SetItemText(li,0,str);
//clistctrl->SetItemText(li,1,str);
li++;
CString member;
member.Format("%d",li);
m_member.SetWindowText(member);
}
}
if ( buf[ui].dwUsage & RESOURCEUSAGE_CONTAINER)
{
Enumration( level + 1, &buf[ui] ,clistctrl);
}
}
}
WNetCloseEnum( hEnum );
Sleep(0);
WSACleanup();
return 0;
}
Bankey Khandelwal
Software Engineer
Solversa TechnologiesPvt.Ltd.
15,Yeshwant Nagar
Range Hill Road
Ganeshkhind,Pune-03
bankey.khandelwal@solversa.com
Mobile: +91-9850432990
Office : +91-20-25521888
|
|
|
|
|
I have one dailog box with two functions as exercise and monitor...My question is....When i check the exercise check box the monitor should diable...after finishing the exercixe function...automatically the monitor should get enable?My functions are in threads....
How can i ??
PLs help me..,..
|
|
|
|
|
|
Anu_Bala wrote: My question is....When i check the exercise check box the monitor should diable...after finishing the exercixe function...automatically the monitor should get enable?
Use EnableWindow() for this.
"The words of God are not like the oak leaf which dies and falls to the earth, but like the pine tree which stays green forever." - Native American Proverb
|
|
|
|
|
Have your worker threads post predefined windows messages (custom user-defined messages) back to the dialog, in the message handler the dialog enables/disables the controls as needed.
It's usually best to communicate with your GUI thread from your worker threads using messages. Takes away a lot of synchronization issues too, since messages are by definition synchronous.
I think there's a good article somewhere on Dr. Joseph Newcomer's site on this subject: www.flounder.net
Good Luck!
Mike Stephenson
|
|
|
|
|
Hi all
I need your guidelines, problem is something like this
I want to add keboard hendling in already existing project.
First Suppose that
1) There is a CList in which many items are there.
2) when user double click on any item(row) of the list then a Tabbed dialog box appears in which we have all the settings related information of selected items.
3) So here I need that dispite of double clicking, user must be able to see same tabbed dialog box by entering to that item
Please help me.
Thanks
|
|
|
|
|
I think you have already written the code for opening that Tabbed dialog box you were talking about. (When double clicked). So your problem is to handle the key press event. You can easily solve this by overriding the PreTranslateMessage() .
Regards,
Rajesh R. Subramanian
You have an apple and me too. We exchange those and We have an apple each.
You have an idea and me too. We exchange those and We have two ideas each.
|
|
|
|
|
Thanks for your advise.
Could you please tell me by some code snippet that how can I override PreTranslateMessage()message.
Please reply
Thanks
|
|
|
|
|
rajeevktripathi wrote: how can I override PreTranslateMessage()message
MFC or plain WIn32 ?
~RaGE();
|
|
|
|
|
I am working on MFC based application.
So it should be MFC based.
(Also better if tell me in Win32 for knowledge enhancement)
Please reply
Thanks.
|
|
|
|
|
rajeevktripathi wrote: how can I override PreTranslateMessage()message.
Add a handler for it from the class wizard.
rajeevktripathi wrote: code snippet
Append this code inside your PreTranslateMessage() handler
if(pMsg->message == WM_KEYDOWN)
{
}
</code>
The value at wParam will be virtual key code of the key that was pressed. Its not ascii value or scan code. Please read about virtual key code on MSDN. Handle the key event as you wish. Log it into a file, or execute a function, etc.
Regards,
Rajesh R. Subramanian.
You have an apple and me too. We exchange those and We have an apple each.
You have an idea and me too. We exchange those and We have two ideas each.
|
|
|
|
|
In the dll project, I use export funciton like this:
extern "C" __declspec(dllexport) START()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
theApp.Start ();
}
In the Main project which use the dll, I write this:
#pragma comment(lib,"xxxxDll.lib")
void START();
...
void CADlg::OnStart()
{
START();
}
When linking ,there is an error:
TestCltDlg.obj : error LNK2001: unresolved external symbol "void __cdecl START(void)" (?START@@YAXXZ)
Why?
|
|
|
|
|
In your application, you need to mark the function as __declspec(dllimport):
extern "C" __declspec(dllimport) void START();
BTW, I assume you've mistyped the function at the top and left out the void keyword. Functions with no specified return type implicitly return int , not void .
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Would anyone know how to obtain the standard USB Interface details (Device , Config and Interface descriptors ) for a USB device ,programmatically on win98 ?
The assumption is that I get pnp notifications for the PNP device , based off a
OnDeviceChange notification to a Cwnd Object .
|
|
|
|
|
I have written a program that stores data in the registry. Now I need to write an uninstaller. How do I clean up the registry programmatically?
My program starts with code like:
SetRegistryKey("Progname");
AfxGetApp()->WriteProfileString("section", "Filename", FileName);
which stores a filename for future use. How do I reverse the effects of SetRegistryKey and/or WriteProfileString to leave the registry as it was originally?
Shraddhan
|
|
|
|
|
I'm using Visual Studio 2003 for an MFC project, and every once and a while (more frequently lately) some of my menu IDs convert from the ID representation (e.g. "ID_FILE_HELLO_WORLD" to the number (e.g. "20412").
Has anyone else seen this bug, and if so, how can I avoid it? It's driving me nuts!
Warren
(sorry, I also posted this in the C++/CLI board by accident)
|
|
|
|
|
Have you checked your resource.h file to check if the resource ID's #define s are still there? I've never come across this problem...
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Yes, they are okay (and it still compiles fine), it's just when you go into the menu editor all of the ID_... entries are converted to their numbers. It's VERY frustrating!
Count yourself lucky if you don't experience this...
Warren
|
|
|
|
|
This is a well known VS 2003 bug. Annoying huh? It appears to have been fixed in VS 2005.
|
|
|
|