On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1998
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.01.12 21:59. Заголовок: Как вызвать "Копирование файлов" в xHarboure ?


При длительных операциях иногда "полезнее" для пользователя (и для программы) показывать вместо бегунка - стандартное окно:


Т.е. если делаешь операции типа копирование из одной базы в другую. Без вывода на экран такая операция намного быстрей проходит. А чтоб юзер не скучал - хочу такое окно повесить.

Как перевести пример Филатова \MiniGUI\SAMPLES\Advanced\AVI_Animation под хХарбор ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 37 , стр: 1 2 All [только новые]







Пост N: 23
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 11.01.12 22:38. Заголовок: Под xHarbour работае..


Под xHarbour работает без проблем.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2252
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.01.12 22:46. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как перевести пример Филатова \MiniGUI\SAMPLES\Advanced\AVI_Animation под хХарбор ?



santy пишет:

 цитата:
Под xHarbour работает без проблем.



Однако

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1999
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.01.12 19:09. Заголовок: santy пишет: Под xH..


santy пишет:

 цитата:
Под xHarbour работает без проблем.



Покажи пожалуйста как ?
Может я непонятно написал вверху, т.е. нужно перевести пример под консоль xHarbour.

Типа как вызывается окно "выбора файла".
Пример тут.
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 668
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 12.01.12 19:16. Заголовок: Андрюха, напиши свою..


Андрюха, напиши свою функцию рисования прогрессбара. Там делов на 10 минут с тремя перекурами.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2000
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.01.12 20:29. Заголовок: PSP пишет: напиши с..


PSP пишет:

 цитата:
напиши свою функцию рисования прогрессбара. Там делов на 10 минут с тремя перекурами.


Как ? Никак не могу сообразить ....

Я копирую 6 баз (по 350 тыс.записей) из одной структуры в другую....
Прогресс бар пусть будет рисоваться по количеству баз.
А так "листочки" из папки в папку летают - красиво и как у всех... Красота для пользователя....
И меня не достают - почему медленно..
И программа (терминалка) как настоящая WINDOWS ...


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 669
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 12.01.12 20:52. Заголовок: Andrey пишет: А так..


Andrey пишет:

 цитата:
А так "листочки" из папки в папку летают - красиво и как у всех... Красота для пользователя...


Листочки, конечно, красиво, но не информативно. Гораздо информативней вывести затраченное/оставшееся время (кол-во записей) и считать не по количеству баз, а по суммарному количеству записей.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2001
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.01.12 21:41. Заголовок: PSP пишет: и считат..


PSP пишет:

 цитата:
и считать не по количеству баз, а по суммарному количеству записей.


Это долго будет...
И в добавок по скорости удобней пользоваться APPEND FROM (cInputBase), без вывода прогрессбара...
Вот для этого и "листочки" нужны....
На глаз видно, когда из большой базы копируешь записи в другую.



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 671
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.01.12 10:26. Заголовок: Andrey пишет: И в д..


Andrey пишет:

 цитата:
И в добавок по скорости удобней пользоваться APPEND FROM (cInputBase), без вывода прогрессбара...
Вот для этого и "листочки" нужны....


Что-то я плохо себе представляю, как ты собрался WinAPI-шный диалог прогресса копирования прикрутить к команде APPEND FROM...


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2002
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.01.12 11:07. Заголовок: PSP пишет: Что-то я..


PSP пишет:

 цитата:
Что-то я плохо себе представляю, как ты собрался WinAPI-шный диалог прогресса копирования прикрутить к команде APPEND FROM...



// запуск "листочков"
WinAPICopyFILEopen( ' идет копирование баз ')

For nI :=1 to LEN(aBase)

WinAPICopyFILE( ' идет копирование базы '+STR(nI)) // туда просто сообщение передавать для информации

// тут открытие баз ....

APPEND FROM (cBaseInput) // - стандартная функция

NEXT
// убрать "листочки"
WinAPICopyFILEclose()

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 672
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.01.12 11:18. Заголовок: Andrey пишет: WinAP..


Andrey пишет:

 цитата:
WinAPICopyFILEopen
WinAPICopyFILE
WinAPICopyFILEclose


Это реальные функции или ты просто так написал?
Функция WinAPI, которая выводит этот диалог при копировании, называется SHFileOperation. В Висте заменена на IFileOperation.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 673
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.01.12 12:09. Заголовок: Если хочешь, посмотр..


Если хочешь, посмотри вот такой простой пример:

PROCEDURE   Main( ... ) 

LOCAL n

RDDSETDEFAULT( "DBFCDX" )

CLS

USE Base
n := BASE->( LastRec() )
COPY STRUCTURE TO Tmp
USE Tmp

APPEND FROM Base WHILE Show( n )

WAIT

RETURN NIL



FUNCTION Show( n )

LOCAL nRecNo := TMP->( RecNo() ) + 1 // единица добавляется потому,
//что функция вызывается ДО копирования записи

IF nRecNo % 1000 == 0 .or. nRecNo == n // каждую 1000-ую запись и последнюю
?? Str( nRecNo ) + Chr( 13 )
END // IF

RETURN .T.


В функции Show() можно считать оставшееся время. Пользователь будет знать, сколько еще ждать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2003
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.01.12 13:54. Заголовок: PSP пишет: Это реал..


PSP пишет:

 цитата:
Это реальные функции или ты просто так написал?


Это я просто для примера... А как они называются в WinApi я не знаю, и как их вызвать я тоже не представляю.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2004
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.01.12 13:55. Заголовок: PSP пишет: посмотри..


PSP пишет:

 цитата:
посмотри вот такой простой пример:



Пример хороший.
Как к нему "листочки" приделать ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 674
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.01.12 14:00. Заголовок: Andrey пишет: Как к..


Andrey пишет:

 цитата:
Как к нему "листочки" приделать ?


Никак, Андрюха, никак...
Я предложил тебе вариант "без листочков".
Для "с листочками" см.функцию WinAPI SHFileOperation. Но тогда будет без APPEND FROM.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 51
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 14.01.12 22:16. Заголовок: Андрей, посмотри так..


Андрей, посмотри такой вариант:
http://zalil.ru/32497414

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2005
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.12 07:35. Заголовок: Прикольный вариант. ..


Прикольный вариант.



Только ужасно не нравиться вызов внешних файлов.
Я стараюсь обходиться без дополнительных EXE-ников.
Тем более нашел вот это:
внимание, файл htmlayout dll скачать не предназначен для коммерческого пользования. используя его вы можете нарушать авторские права владельца ......

Так что такой вариант отпадает !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1068
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.01.12 11:20. Заголовок: PSP пишет: Никак, А..


PSP пишет:

 цитата:
Никак, Андрюха, никак...
Я предложил тебе вариант "без листочков".


Листочки давай !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 52
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 15.01.12 14:04. Заголовок: Для Andrey 1.По пово..


Для Andrey
1.По поводу лицензии HTMLayout:
Скрытый текст

2.Вместо er32.exe есть c++ текст для посылки сообщений. Могу выложить.
3.Применение одельного exe для таких длителиных операций (как в данном случае) вполне применимо.
4.Можно поискать другие анимационные gif (с листочками).


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2006
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.12 15:22. Заголовок: Петр пишет: Листочк..


Петр пишет:

 цитата:
Листочки давай !



Да там же в папке \MiniGUI\SAMPLES\Advanced\AVI_Animation\161.avi




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2007
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.12 15:24. Заголовок: SergejKis пишет: Вм..


SergejKis пишет:

 цитата:
Вместо er32.exe есть c++ текст для посылки сообщений. Могу выложить.



Да я не Си-ник, перевести на Харбор не смогу.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2255
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.01.12 15:40. Заголовок: Andrey пишет: Да я ..


Andrey пишет:

 цитата:
Да я не Си-ник, перевести на Харбор не смогу


А раздел C++ у нас для чего (надеюсь не только для обсуждения стандартов) ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1070
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.01.12 16:37. Заголовок: Andrey пишет: Да та..


Andrey пишет:

 цитата:
Да там же в папке \MiniGUI\SAMPLES\Advanced\AVI_Animation\161.avi


Я не это имел ввиду
Пример от Григория и SHFileOperation немного разные. Не вдаваясь в подробности, SHFileOperation для визуализации использует шаблон диалога. Найти его можно в той же dll, гле и находится вышеупомянутая функция shellapi.dll (там же и "листочки" ). Вытащить этот шаблон можно с помощью какого-то редактора ресурсов, тюнера или хакера, которых в достаточном количестве можно найти на просторах и-нета.

1020 DIALOGEX 20, 20, 240, 105, 0 
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_FIXEDSYS | WS_POPUPWINDOW | WS_DLGFRAME
FONT 8, "MS Shell Dlg"
{
CONTROL "", 106, "SysAnimate32", 0x5000000E, 10, 0, 240, 25, WS_EX_TRANSPARENT
CONTROL "", 103, "STATIC", NOT WS_GROUP | SS_BLACKRECT | SS_GRAYFRAME | SS_NOPREFIX, 55, 46, 175, 10, WS_EX_TOPMOST | WS_EX_TRANSPARENT
CONTROL "", 102, "STATIC", NOT WS_GROUP | SS_BLACKRECT | SS_GRAYFRAME | SS_NOPREFIX, 55, 35, 175, 10, WS_EX_TOPMOST | WS_EX_TRANSPARENT
CONTROL "", 104, "msctls_progress32", 0, 10, 65, 220, 10, WS_EX_TOPMOST | WS_EX_TRANSPARENT
LTEXT "", 105, 78, 85, 100, 10, NOT WS_GROUP | SS_NOPREFIX
DEFPUSHBUTTON "Отмена", 500, 180, 83, 50, 14, NOT WS_TABSTOP
LTEXT "Название:", 12289, 11, 35, 38, 8, 0, WS_EX_TOPMOST | WS_EX_TRANSPARENT
LTEXT "Куда:", 12289, 11, 46, 30, 8, 0, WS_EX_TOPMOST | WS_EX_TRANSPARENT
LTEXT "Расчет времени:", 12289, 11, 85, 62, 8, 0, WS_EX_TOPMOST | WS_EX_TRANSPARENT
}

Вот если бы вы использовали Harbour, то для выполнения этого диалога смогли бы использовать функцию wapi_DialogBoxParam (из библиотеки hbwin). В папке harbour\contrib\hbwin\tests\ можно найти пример вызова диалога dlg.prg

Вот как этот пример выглядит в работе

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1071
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.01.12 16:41. Заголовок: А вот так выглядит д..


А вот так выглядит диалог с "листочками"


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1072
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.01.12 16:46. Заголовок: Код примера #include..


Модифицированный код примера
#include "common.ch" 
#include "hbwin.ch"

#include "dlg1.ch"

PROCEDURE Main()

wapi_DialogBoxParam( 0, IDD_DIALOG1, 0, @DialogFunc() )

RETURN

FUNCTION DialogFunc( hWnd, message, wParam, lParam, wPHigh, wPLow )

HB_SYMBOL_UNUSED( wParam )
HB_SYMBOL_UNUSED( lParam )
HB_SYMBOL_UNUSED( wPHigh )

SWITCH message
CASE WM_INITDIALOG

wapi_SetDlgItemText( hWnd, IDC_STATIC1, "?" )
wapi_SetDlgItemText( hWnd, IDC_STATIC2, "!" )
wapi_SetDlgItemText( hWnd, IDC_STATIC3, Time() )
wapi_SetDlgItemAvi( wapi_GetDlgItem( hWnd, IDC_ANIMATE1 ), 0, IDR_AVI1 )
wapi_SetDlgItemPBRange( wapi_GetDlgItem( hWnd, IDC_PBAR1 ), 0, 100 )
wapi_SetDlgItemPBPos( wapi_GetDlgItem( hWnd, IDC_PBAR1 ), 50 )
RETURN .T.

CASE WM_CLOSE
IF wapi_MessageBox( 0, "?!", "!!", WIN_MB_OKCANCEL + WIN_MB_ICONQUESTION ) == 1
wapi_SetDlgItemAvi( wapi_GetDlgItem( hWnd, IDC_ANIMATE1 ), 0, 0 )
wapi_EndDialog( hWnd, 3 )

RETURN .T.
ENDIF
EXIT

CASE WM_COMMAND
SWITCH wPLow
CASE IDC_BUTTON1
SELF_CLOSE( hWnd )

RETURN .T.
ENDSWITCH
ENDSWITCH

RETURN .F.

#pragma BEGINDUMP
#include "hbwin.h"
#include "hbwapi.h"
#include "hbapiitm.h"

#include <commctrl.h>

#if defined( __BORLANDC__ ) && !defined( HB_ARCH_64BIT )
#undef MAKELONG
#define MAKELONG(a,b) ((LONG)(((WORD)((DWORD_PTR)(a) & 0xffff)) | \
(((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16)))
#endif

HB_FUNC( WAPI_SETDLGITEMAVI )
{
int iResult = SendMessage( hbwapi_par_raw_HWND( 1 ),
ACM_OPEN,
( WPARAM ) hbwapi_par_raw_HINSTANCE( 2 ),
( LPARAM ) hbwapi_par_INT( 3 ) );

hbwapi_SetLastError( GetLastError() );
hbwapi_ret_NI( iResult );
}

HB_FUNC( WAPI_SETDLGITEMPBRANGE )
{
SendMessage( hbwapi_par_raw_HWND( 1 ), PBM_SETRANGE, 0, MAKELONG( hbwapi_par_INT( 2 ), hbwapi_par_INT( 3 ) ) );
}

HB_FUNC( WAPI_SETDLGITEMPBPOS )
{
SendMessage( hbwapi_par_raw_HWND( 1 ), PBM_SETPOS, ( WPARAM ) hbwapi_par_INT( 2 ), 0 );
}

HB_FUNC_STATIC( SELF_CLOSE )
{
SendMessage( hbwapi_par_raw_HWND( 1 ), WM_CLOSE, 0, 0 );
}
#pragma ENDDUMP



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1073
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.01.12 16:53. Заголовок: Файл ресурсов dlg.rc..


Файл ресурсов dlg.rc
 
#include <windows.h>
#include <commctrl.h>

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

1 MANIFEST "dlg.xml"

1020 DIALOGEX 20, 20, 240, 105, 0
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_FIXEDSYS | WS_POPUPWINDOW | WS_DLGFRAME
FONT 8, "MS Shell Dlg"
{
CONTROL "", 106, "SysAnimate32", 0x5000000E, 10, 0, 240, 25, WS_EX_TRANSPARENT
CONTROL "", 103, "STATIC", NOT WS_GROUP | SS_BLACKRECT | SS_GRAYFRAME | SS_NOPREFIX, 55, 46, 175, 10, WS_EX_TOPMOST | WS_EX_TRANSPARENT
CONTROL "", 102, "STATIC", NOT WS_GROUP | SS_BLACKRECT | SS_GRAYFRAME | SS_NOPREFIX, 55, 35, 175, 10, WS_EX_TOPMOST | WS_EX_TRANSPARENT
CONTROL "", 104, "msctls_progress32", 0, 10, 65, 220, 10, WS_EX_TOPMOST | WS_EX_TRANSPARENT
LTEXT "", 105, 78, 85, 100, 10, NOT WS_GROUP | SS_NOPREFIX
DEFPUSHBUTTON "Отмена", 500, 180, 83, 50, 14, NOT WS_TABSTOP
LTEXT "Название:", 12289, 11, 35, 38, 8, 0, WS_EX_TOPMOST | WS_EX_TRANSPARENT
LTEXT "Куда:", 12289, 11, 46, 30, 8, 0, WS_EX_TOPMOST | WS_EX_TRANSPARENT
LTEXT "Расчет времени:", 12289, 11, 85, 62, 8, 0, WS_EX_TOPMOST | WS_EX_TRANSPARENT
}

2020 AVI "161.avi"

Файл манифеста dlg.xml (чтобы приложение поддерживало темы Windows)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="MyOrganization.MyDivision.MyApp"
version="1.0.0.0"
processorArchitecture="X86"
/>
<description>Verbal description of MyApp.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

Ну и dlg1.ch
#define IDD_DIALOG1                        1020 
#define IDC_STATIC1 102
#define IDC_STATIC2 103
#define IDC_PBAR1 104
#define IDC_STATIC3 105
#define IDC_ANIMATE1 106
#define IDC_BUTTON1 500
#define IDR_AVI1 2020

#define WM_INITDIALOG 0x0110
#define WM_COMMAND 0x0111
#define WM_SYSCOMMAND 0x0112
#define WM_CLOSE 0x0010



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2008
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.01.12 17:56. Заголовок: Петр пишет: Вот ес..


Петр пишет:

 цитата:

Вот если бы вы использовали Harbour



А на хХарбор нельзя перетащить ?
Очень просим, все работающие на хХарборе тоже захотят .....

Пытался собрать сам, да не получается.
хХарбор не понимает команды ENDSWITCH

xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'CopyFileWinApi.PRG'...

CopyFileWinApi.PRG(44) Error E0020 Incomplete statement or unbalanced delimiters
CopyFileWinApi.PRG(45) Error E0020 Incomplete statement or unbalanced delimiters
CopyFileWinApi.PRG(89) Error E0030 Syntax error: "syntax error at 'я'"

3 errors


Проект для хХарбора здесь http://zalil.ru/32502422
Может что-то неправильно сделал ?.....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 675
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.01.12 10:03. Заголовок: Andrey пишет: хХарб..


Andrey пишет:

 цитата:
хХарбор не понимает команды ENDSWITCH


А END понимает?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1074
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.01.12 11:06. Заголовок: PSP пишет: А END по..


PSP пишет:

 цитата:
А END понимает?


END он понимает, а вот Андрей не понимает, что он хочет.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2009
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.01.12 18:06. Заголовок: PSP пишет: А END п..


PSP пишет:

 цитата:

А END понимает?



А я знаю что-ли ??? Я не пользуюсь такой конструкцией, без надобности....

Петр пишет:

 цитата:
END он понимает, а вот Андрей не понимает, что он хочет.



Ну понимаю что прошу невыполнимое, но надеюсь, а вдруг можно сделать....


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2256
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.01.12 18:16. Заголовок: Andrey пишет: А я ..


Andrey пишет:

 цитата:

А я знаю что-ли ??? Я не пользуюсь такой конструкцией, без надобности....


:\svn\xharbour\doc\en\switch.txt

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2020
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.01.12 20:29. Заголовок: Опять возвращаюсь к ..


Опять возвращаюсь к проекту, что Петр выложил.

Я на Харборе программ еще не делал, так что опять наткнулся на грабли, как обойти - не знаю.
Собрал файл проекта CopyFile.hbp для HBMK2

При компиляции выдает ошибку:
Z:\hb30\SHFileOperation>Z:\hb30\bin\hbmk2.exe CopyFile
hbmk2: Compiling Harbour sources...
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'CopyFileWinApi.prg'...
Lines 965, Functions/Procedures 2
Generating C source output to 'OBJ\CopyFileWinApi.c'... Done.
hbmk2: Compiling resources...
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.
hbmk2: Compiling...
OBJ\CopyFileWinApi.c:
Error E2293 CopyFileWinApi.prg 60: ) expected
Error E2206 CopyFileWinApi.prg 76: Illegal character '\' (0x5c)
*** 2 errors in Compile ***
hbmk2: Error: Running C/C++ compiler. 1
bcc32.exe -c -q -d -6 -O2 -OS -Ov -Oi -Oc -tWM -w -Q -w-sig- -nOBJ -IZ:\BCC55\Include -IZ:\hb30\include
OBJ\CopyFileWinApi.c


Сами исходники здесь: http://zalil.ru/32543676

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 709
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.01.12 20:57. Заголовок: Andrey пишет: Error..


Andrey пишет:

 цитата:
Error E2293 CopyFileWinApi.prg 60: ) expected
Error E2206 CopyFileWinApi.prg 76: Illegal character '\' (0x5c)


Ну, а что в файле CopyFileWinApi.prg в строках 60 и 76?

ЗЫ. Ну да, ну да... Вроде все красиво. BCC что-ли неправильно препроцессерствует...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2021
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.01.12 21:21. Заголовок: PSP пишет: ЗЫ. Ну д..


PSP пишет:

 цитата:
ЗЫ. Ну да, ну да... Вроде все красиво. BCC что-ли неправильно препроцессерствует...


Вот и я не пойму, что там ему не понравилось ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 710
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 20.01.12 21:32. Заголовок: Andrey пишет: Вот и..


Andrey пишет:

 цитата:
Вот и я не пойму, что там ему не понравилось ?


Кажись, я понял.
После копирования текста из форума, во всех строках в конце добавлен пробел.
Получается, что в #define в 60-й строке символ \ остается после обработки препроцессором,
а его в результирующей строке быть не должно. Он означает "продолжение на следующей строке", должен быть последним в строке.
Убери замыкающий пробел в 60-й строке.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2022
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.12 00:32. Заголовок: PSP пишет: Убери за..


PSP пишет:

 цитата:
Убери замыкающий пробел в 60-й строке.


Не помогло ....
Убрал \ и подтянул всю строку, тогда заработало...

Но не собралась программа ....
Error: Unresolved external '_HB_FUN_WAPI_DIALOGBOXPARAM' referenced from Z:\HB30\SHFILEOPERATION\OBJ\COPYFILEWINAPI.OBJ
Error: Unresolved external '_HB_FUN_WAPI_SETDLGITEMTEXT' referenced from Z:\HB30\SHFILEOPERATION\OBJ\COPYFILEWINAPI.OBJ
Error: Unresolved external '_HB_FUN_WAPI_GETDLGITEM' referenced from Z:\HB30\SHFILEOPERATION\OBJ\COPYFILEWINAPI.OBJ
Error: Unresolved external '_HB_FUN_WAPI_MESSAGEBOX' referenced from Z:\HB30\SHFILEOPERATION\OBJ\COPYFILEWINAPI.OBJ
Error: Unresolved external '_HB_FUN_WAPI_ENDDIALOG' referenced from Z:\HB30\SHFILEOPERATION\OBJ\COPYFILEWINAPI.OBJ
Error: Unresolved external '_hbwapi_SetLastError' referenced from Z:\HB30\SHFILEOPERATION\OBJ\COPYFILEWINAPI.OBJ
hbmk2: Error: Running linker. 2

Видать какую-то библиотеку нужно добавлять....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2023
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.01.12 00:42. Заголовок: Нашел методом тыка, ..


Нашел методом тыка, где сидит WAPI_DIALOGBOXPARAM - в hbwin.lib
Добавил в проект -lhbwin.lib
Ура, заработало

Кому интересно вот готовый проект - http://zalil.ru/32545255
PSP спасибо за подсказку !!!

Петр, БОЛЬШОЕ СПАСИБО !!!


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2024
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.01.12 13:33. Заголовок: А как бегунок застав..


А как бегунок заставить "бежать" в этом примере ?
И надписи меняться - выдавать имя копируемой базы ?

Уж больно синтаксис навороченный в этом примере !
Да и правильно хочется понять, как такие конструкции использовать.
Заранее спасибо за разъяснения.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 37 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 147
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет