C/C++µ×²ãʵÏÖÖ¸¶¨´ÅÅÌÖ»¶Á
C/C++µ×²ãʵÏÖÖ¸¶¨´ÅÅÌÖ»¶Á ÊÕ²Ø
Ñà¿ñͽдµÄÇý¶¯¹Ò¹³£¬ÏÞÖÆ´ÅÅÌÖ»¶Á£¬ ÓÃÓÚ±£Ö¤ÉæÃܼÆËã»úµÄÎȶ¨£¬Ï൱ÓÚ½«´ÅÅ̱ä³ÉROM #include "ntddk.h"
#include
#include #define DRIVERNAME "OnlyRead(GongXiPeng!)" // for use in messages typedef struct tagDEVICE_EXTENSION {
PDEVICE_OBJECT DeviceObject; // device object this extension belongs to
PDEVICE_OBJECT LowerDeviceObject; // next lower driver in same stack
PDEVICE_OBJECT Pdo; // the PDO
IO_REMOVE_LOCK RemoveLock;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION; VOID RemoveDevice(IN PDEVICE_OBJECT fdo);
NTSTATUS CompleteRequest(IN PIRP Irp, IN NTSTATUS status, IN ULONG_PTR info);
NTSTATUS DispatchForSCSI(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT pdo); NTSTATUS DispatchAny(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS DispatchPower(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS DispatchPnp(IN PDEVICE_OBJECT fido, IN PIRP Irp);
NTSTATUS DispatchWmi(IN PDEVICE_OBJECT fido, IN PIRP Irp);
ULONG GetDeviceTypeToUse(PDEVICE_OBJECT pdo);
NTSTATUS StartDeviceCompletionRoutine(PDEVICE_OBJECT fido, PIRP Irp, PDEVICE_EXTENSION pdx);
NTSTATUS UsageNotificationCompletionRoutine(PDEVICE_OBJECT fido, PIRP Irp, PDEVICE_EXTENSION pdx); VOID DriverUnload(IN PDRIVER_OBJECT fido); NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
int i;
KdPrint(("×¼±¸Çý¶¯¼ÓÔØ"));
UNREFERENCED_PARAMETER(RegistryPath);
DriverObject->DriverUnload = DriverUnload;
DriverObject->DriverExtension->AddDevice = AddDevice;
for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; ++i)
DriverObject->MajorFunction[i] = DispatchAny;
DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower;
Ïà¹ØÎĵµ£º
ÔÚc++ÖдæÔÚ£¬ÔÚcÓïÑÔÖÐÈ´²»´æÔÚµÄÏÞÖÆÓУº
1. ÍêÕûµÄº¯ÊýÔÐÍÉùÃ÷ÊDZØÐëµÄ£¬cÓïÑÔÀïûÕâôÑϸñ.
2. c++ÖУ¬ÓÉtypedef¶¨ÒåµÄÃû×Ö²»ÄÜÓëÒÑÓеĽṹ±êÇ©³åÍ»£¬µ«ÊÇcÓïÑÔÖÐÈ´ÊÇ¿ÉÒÔµÄ.
3. µ±void*Ö¸Õ븳ֵ¸øÁíÒ»¸öÀàÐ͵ÄÖ¸Õëʱ£¬c++¹æ¶¨±ØÐë½øÐÐÇ¿ÖÆÀàÐÍת»»£¬µ«ÊÇcÓïÑÔÖÐÈ´²»±ØÒª¡£
ÔÚc++ºÍcÖк¬Òå²»Ò»ÑùµÄÌØÐÔ£º
1. c++ ......
1. ×Ö·û´®²Ù×÷º¯Êý
³ÌÐò°´¹¦ÄÜ»®·Ö¿É·ÖΪÊýÖµÔËËã¡¢·ûºÅ´¦ÀíºÍI/O²Ù×÷ÈýÀ࣬·ûºÅ´¦Àí³ÌÐòÕ¼Ï൱´óµÄ±ÈÀý£¬·ûºÅ´¦Àí³ÌÐòÎÞ´¦²»ÔÚ£¬±àÒëÆ÷¡¢ä¯ÀÀÆ÷¡¢OfficeÌ×¼þµÈ³ÌÐòµÄÖ÷Òª¹¦Äܶ¼ÊÇ·ûºÅ´¦Àí¡£ÎÞÂ۶ิÔӵķûºÅ´¦Àí¶¼ÊÇÓɸ÷ÖÖ»ù±¾µÄ×Ö·û´®²Ù×÷×é³ÉµÄ£¬±¾½Ú½éÉÜÈçºÎÓÃCÓïÑԵĿ⺯Êý×ö×Ö·û´®³õʼ»¯¡¢È¡³¤¶È¡¢¿½±´¡¢Á¬½ ......
main.c
//³õʼ»¯¶ÓÁÐ
void InitQueue(LiQueue *q)
{
q=(LiQueue*)malloc(sizeof(LiQueue));
q->front=q->rear=NULL;
}
//ÅжÏÊÇ·ñΪ¿Õ
int QueueEmpty(LiQueue *q)
{
if(q->rear==NULL)
{
return 1;
}
else
{
......
µ¥Àýģʽ£º¶ÔÓ¦Ò»¸öÀàÖ»ÄÜÉú³ÉÒ»¸ö¶ÔÏó¡£
#include <stdio.h>
class A
{
private:
int id;
A() {}//°Ñ¹¹Ô캯Êý·ÅÔÚprivate£ºÏÂÄ¿µÄÊÇÔÚÀàÍâ²»ÄÜÔÚÕ»ÉÏÖ±½Ó·ÖÅä¿Õ¼ä¶¨Òå¶ÔÏó¡£
public:
static A *pt;
static A *instance()
  ......
KDevelopÊÇÒ»¸öÖ§³Ö¶à³ÌÐòÉè¼ÆÓïÑԵļ¯³É¿ª·¢»·¾³¡£ËüÔËÐÐÓÚLinuxºÍÆäËüÀàunix»·¾³¡£
¡¡¡¡KDevelop±¾Éí²»°üº¬±àÒëÆ÷£¬¶øÊǵ÷ÓÃÆäËü±àÒëÆ÷À´±àÒë³ÌÐò¡£
¡¡¡¡1.´ò¿ªÐÂÁ¢µÃÈí¼þ°ü¹ÜÀíÆ÷
¡¡¡¡2.²éÕÒKDevelop£¬ÔÚ½á¹ûÖе±È»Êǹ´Ñ¡KDevelop£¬»¹ÓÐKDevelopϵÁÐÀïÃæÄǸö´ø"-dev"ºó׺µÄ°ü£¬µ±È»Äã¿ÉÒÔ²»¹´
¡¡¡¡3.×°ºÃÇ°ÃæµÄ°üºó° ......