[英]C - shared memory cast to struct
我必須完成我的C程序,但是我被困在任務的共享內存部分。
基本上我應該這樣做: MapViewOfFile
返回一個指向void
的指針,你可以將它轉換成你喜歡的任何東西。 我建議您創建struct來表示您希望內存具有的結構,並將返回指針強制轉換為此結構。“
我調用MapViewOffFile
函數,但我不明白我應該如何指向它的結構。 碼:
typedef struct {
LARGE_INTEGER start;
LARGE_INTEGER end;
LARGE_INTEGER frq;
} TimeOfSharing;
TimeOfSharing timing;
HANDLE fileView;
fileView = MapViewOfFile(fileHandle, FILE_MAP_READ | FILE_MAP_WRITE,PAGE_READONLY, 0, 0);
那么我如何將fileView
指向我的結構? (我需要從另一個進程獲取結構)
希望我足夠清楚! 非常感謝!
MapViewOfFile
實際上返回一個指向void的指針,而不是HANDLE
。
你只需要恰當地施展:
TimeOfSharing *timing = (TimeOfSharing *)MapViewOfFile(...);
// Then access as you see fit, e.g.:
LARGE_INTEGER length;
length.QuadPart = timing->end.QuadPart - timing->start.QuadPart;
如果您確實需要/想要實際復制數據,而不僅僅是訪問它:
TimeOfSharing my_copy = *(TimeOfSharing *)MapViewOfFile(...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.