Открытие соединения канала с дескриптором файла в C#

Это опечатка:

Вместо

scanf("&lf", &price);

должно быть

scanf("%lf", &price);

И вместо

printf("Price &lf Dollar", price);

должно быть быть

printf("Price %lf Dollar", price);
5
задан Tamas Czinege 29 January 2009 в 22:31
поделиться

1 ответ

К сожалению, Вы не сможете сделать это без P/Invoking к собственному Windows API сначала.

Во-первых, необходимо будет открыть дескриптор файла с собственным вызовом P/Invoke. Это сделано функцией OpenFileById WINAPI. Вот то, как использовать его на MSDN, здесь является другой ссылкой, объясняя его подробно на форумах MSDN и здесь является некоторой справкой (pinvoke.net) о том, как создать Ваш вызов P/Invoke.

После того как Вы получили дескриптор файла, необходимо перенести его в SafeFileHandle, на этот раз в безопасный, управляемый C#:

// nativeHandle is the WINAPI handle you have acquired with the P/Invoke call
SafeFileHandle safeHandle = new SafeFileHandle(nativeHandle, true);

Теперь можно открыть поток файла непосредственно:

Stream stream = new FileStream(safeHandle, FileAccess.ReadWrite);

И от этой точки можно использовать его в качестве любого другого файла или потока в C#. Не забывайте располагать свои объекты, после того как Вы сделаны.

5
ответ дан 14 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: