Форум: "WinAPI";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизКак ассоциировать THandle файла в памяти с именем Name: String Найти похожие ветки
← →
comwad (2003-11-21 12:42) [0]Как можно ассоциировать hmapobj:THandle;
созданный в результате
hmapobj:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,sizeof(dword),pchar("temp.bmp"));
с именем файла "в текстовом виде", для того чтобы сделать
Memo1.Lines.SaveToFile("temp.bmp");
(То есть SaveToFile со стринговым параметром именно в память, а не на диск)
Если просто совпадают имена "temp.bmp", то текст из Memo1 сохраняется в текущий дирректорий.
Спасибо.
← →
MBo (2003-11-21 13:00) [1]сохраняй в MemoryStream, Memory которого указывает на View твоего файла
← →
comwad (2003-11-21 14:33) [2]Так делал.
Я работаю с видеозахватом с функцией
capFileSaveDIB
TempStream := TMemoryStream.Create;
capFileSaveDIB(cap_WndHandle,lparam(TempStream));
BitMap.LoadFromStream(TempStream);// LoadFromFile("tt.tmp");
TempStream.Free;
В BitMap не грузятся данные из TempStream.
Не ругается никто и ничто и не грузятся.
← →
MBo (2003-11-21 14:39) [3]TempStream.Position:=0;
← →
comwad (2003-11-21 15:43) [4]Это в каком месте?
И что это может изменить, можно более подробнее?
Спасибо.
← →
MBo (2003-11-21 15:48) [5]Перед LoadFromStream
← →
- (2003-11-21 20:30) [6]TMMFStream в кладовке
← →
comwad (2003-11-22 09:08) [7]Не работает!
Помогите советом.
Ситуация:
capFileSaveDIB(cap_WndHandle,lparam(Pchar("TMP.BMP")));
Bmp1.LoadFromFile("TMP.BMP");
- так с канвы битмапа можно считать цвет пикселя (что и надо в результате),
то есть передача изображения от cap_WndHandle в BMP1
через файл происходит отлично:
Но через память (чтобы не юзать диск) не хочет:
BMP1 - остается пустой!!!????
Не работающий код:
TempStream := TMemoryStream.Create;
try
capFileSaveDIB(AviCap1.cap_WndHandle,lparam(TempStream));
TempStream. Position := 0;
Bmp1.LoadFromStream(TempStream);
finally
TempStream.Free
end;
← →
Бином Ньютоныч (2003-11-22 17:10) [8]Слушай, расскажи как нужно начать думать, чтобы функции которая ждет имя файла в виде строки передать указатель на объект, даеще и чиста дельфийский. Не правда интересно
← →
comwad (2003-11-24 09:42) [9]To Бином Ньютоныч:
lparam(Pchar("TMP.BMP"))) - это не строка, а INTEGER;
← →
MBo (2003-11-24 10:19) [10]>comwad
Ты привел два разных capFileSaveDIB - с передачей имени или объекта-потока. Чему верить?
← →
Бином Ньютоныч (2003-11-24 17:02) [11]>comwad © (24.11.03 09:42) [9]
Я канэчна дика извиняюсь, но Вы в каком полкЕ служили?
MSDN нам завещал:
The capFileSaveDIB macro copies the current frame to a DIB file. You can use this macro or explicitly call the WM_CAP_FILE_SAVEDIB message.
BOOL capFileSaveDIB(
hwnd,
szName
);
Parameters
hwnd
Handle to a capture window.
szName
Pointer to the null-terminated string that contains the name of the destination DIB file.
Return Values
Returns TRUE if successful or FALSE otherwise.
If an error occurs and an error callback function is set using the capSetCallbackOnError macro, the error callback function is called.
А VfW.H, собака, смеет утверждать, что:
#define capFileSaveDIB(hwnd, szName) ((BOOL)AVICapSM(hwnd, WM_CAP_FILE_SAVEDIB, 0, (LPARAM)(LPVOID)(LPTSTR)(szName)))
Ну и кто тут кому интеджер? И с какого перепугу этим интеджером может оказаться указатель на дельфовый объект?! Ась?
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c