On-line: PSP, гостей 0. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 83
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 24.04.10 19:36. Заголовок: Как разобрать OBJ файл ?


В библиотеку hbct.lib вошли не все функции из клипперного варианта.
Вот захотелось мне что бы не писать недостающие функции самому вытащить их из старой библиотеки.
Нужный OBJ файл вытащил конечно.

А вот как его разобрать на исходники ?
Разные valkirie и rescue требуют непременно EXEшники.

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


администратор




Пост N: 1616
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.04.10 19:47. Заголовок: Uncle_ed пишет: Раз..


Uncle_ed пишет:

 цитата:
Разные valkirie и rescue требуют непременно EXEшники


Собери простой EXE и слинкуй (RTLINK) его с вытащенными OBJ :)
А каких функций не хватает в CT ?

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


Пост N: 884
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 24.04.10 21:31. Заголовок: Uncle_ed пишет: А в..


Uncle_ed пишет:

 цитата:
А вот как его разобрать на исходники ?
Разные valkirie и rescue требуют непременно EXEшники.



Оригинальная CT на asm- е написана. Чем вам валькирия поможет - не знаю.
Вы лучше список недостающих функций выложите - может и подскажут, что и чем лучше заменить.

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



Пост N: 84
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 25.04.10 08:35. Заголовок: Ну например, Tempfil..


Ну например, Tempfile()
Это первое с чем столкнулся.
Конечно написать ее не проблема, но хотелось бы ближе к оригиналу иметь.
Думаю есть и другие нерелизованые функции.
Вытащил файл tempfile.prg из исходников библиотеки libfn от xharbour и тупо его прилинковать, но ide все равно говорит, что нет _HB_FUN_TEMPFILE
Т.е. его все равно нужно сначала адаптировать под Harbour.

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


Пост N: 886
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 25.04.10 08:59. Заголовок: b]Tempfile - это слу..


Tempfile - это случай, когда разработчики неявно подталкивают к использованию встроенных функций (а не к смене компилятора ), которые могут быть использованы на любой поддерживаемой платформе.
И о Tempfile на форуме уже писалось.

PROCEDURE Main 
LOCAL cTempFile := TempFileName()

? cTempFile

FErase( cTempFile )
RETURN


FUNCTION TempFileName()
LOCAL nFileHandle
LOCAL cFileName

nFileHandle := HB_FTempCreate( ,,, @cFileName )

IF nFileHandle > 0
FClose( nFileHandle )
ENDIF
RETURN cFileName


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


Пост N: 887
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 25.04.10 09:04. Заголовок: А еще есть hb_dbCrea..


А еще есть hb_dbCreateTemp, функция аналог dbCreat. dbf-ка созданная hb_dbCreateTemp будет удалена автоматически после закрытия.


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



Пост N: 85
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 25.04.10 10:07. Заголовок: Спасибо - функция пр..


Спасибо - функция прокатила.
Только вопрос - с чем связано ее имя TempFileName вместо TempFile ?
Это принципиальная разница ?

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



Пост N: 18
Зарегистрирован: 14.03.10
ссылка на сообщение  Отправлено: 25.04.10 12:08. Заголовок: FileName - используе..


FileName - используется для обозначения строковых переменных, которые содержат путь к файлу
File - используется для обозначения переменных, которые содержат связь с объектом файла, и позволяют выполнять действия чтения/записи из/в файл.

В данном случае TempFileName - не соответствует логике указанной функции.


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


Пост N: 888
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 25.04.10 14:39. Заголовок: Uncle_ed пишет: Тол..


Uncle_ed пишет:

 цитата:
Только вопрос - с чем связано ее имя TempFileName вместо TempFile ?
Это принципиальная разница ?


TempFileName - в данном случае пользовательская функция, вы можете присвоить ей имя TempFileName, GetTempFileName или даже более понятное qwerty_tmp007.
В данном случае принципиальным является использование встроенной функции языка hb_fTempCreate(...)

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


Пост N: 889
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 25.04.10 15:10. Заголовок: Наиль пишет: В данн..


Наиль пишет:

 цитата:
В данном случае TempFileName - не соответствует логике указанной функции.


А что по вашему возвращает TempFileName?

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



Пост N: 89
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 25.04.10 17:04. Заголовок: Петр Я просто пере..


Петр

Я просто переименовал ее в tempfile для того чтобы не переделывать свои исходники.
Чем это чревато ?

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




Пост N: 1617
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.04.10 17:09. Заголовок: Uncle_ed пишет: Чем..


Uncle_ed пишет:

 цитата:
Чем это чревато ?


Ни чем.

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



Пост N: 91
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 25.04.10 17:17. Заголовок: Вот и я так думаю. З..


Вот и я так думаю. Зачем тогда имя другое давать ?

Спасибо

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




Пост N: 1417
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.04.10 10:05. Заголовок: Сегодня вечером доба..


Сегодня вечером добавлю TempFile() в xHarbour
Если есть желание - гляньте на совместимость этой функции с ct
А то получается вопрос небольшой, а шума много.

#include "set.ch" 

Function TempFile(cDir, cExt, nAttr)
LOCAL nFileHandle
LOCAL cFileName, cNewName
LOCAL nAt, cSep

IF cDir == nil
cDir := CurDirX()
ENDIF
nFileHandle := HB_FTempCreate(cDir,, nAttr, @cFileName )
IF nFileHandle > 0
FClose( nFileHandle )
nAt := Rat(".", cFileName)
cSep := Set(_SET_DIRSEPARATOR)
IF nAt != 0 .and. Rat(cSep, cFileName) > nAt
nAt := 0
ENDIF
IF cExt != nil
cNewName := if(nAt==0, cFileName, Left(cFileName, nAt - 1)) + "." + cExt
ELSEIF nAt != 0
cNewName := Left(cFileName, nAt - 1)
ENDIF
IF ! Empty(cNewName) .and. FRENAME(cFileName, cNewName) != -1
cFileName := cNewName
ENDIF
IF (nAt := Rat(cSep, cFileName)) != 0
cFileName := Substr(cFileName, nAt + 1)
ENDIF
ENDIF
Return cFileName


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



Пост N: 94
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 27.04.10 05:24. Заголовок: протестировал - не п..


протестировал - не получилось


 цитата:
Error: Unresolved external '_HB_FUN_CURDIRX' referenced from C:\MINIGUI\IDE\SAMPLES\PROBA\OBJ\PROBA.OBJ



где эта функция сидит ?

Вот если на CurDir() заменить , то работатет.
Очепятка ?

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


Пост N: 890
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 27.04.10 08:00. Заголовок: Uncle_ed пишет: Оче..


Uncle_ed пишет:

 цитата:
Очепятка ?


Нет. xHarbour расширение.

Вариант для Harbour. Со вчерашнего дня в SVN

/* 
* $Id: tempfile.prg 14395 2010-04-26 18:49:38Z vszakats $
*/

#include "common.ch"
#include "fileio.ch"

FUNCTION TempFile( cDir, cExt, nAttr )
LOCAL cName
LOCAL fhnd

IF ISCHARACTER( cExt ) .AND. !( Left( cExt, 1 ) == "." )
cExt := "." + cExt
ENDIF

fhnd := hb_FTempCreateEx( @cName, cDir,, cExt, nAttr )

IF fhnd != F_ERROR
FClose( fhnd )
RETURN cName
ENDIF

RETURN ""




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



Пост N: 100
Зарегистрирован: 31.03.07
ссылка на сообщение  Отправлено: 29.04.10 09:18. Заголовок: Воткнул, протестиров..


Воткнул, протестировал всяко разно как мог - вроде бы работает нормально.
Спасибо.

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

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