簡體   English   中英

C - 共享內存轉換為struct

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM