Экспорт функций из msvcrt.dll в VBA
От: vba_user  
Дата: 29.10.06 12:14
Оценка:
Declare Function strcpy Lib "msvcrt.dll" (Byval Dest As String, Byval Source As String) As Long
Private Sub Test()
    Dim cs_text As String
    Dim cs_word As String
    
    cs_word = "word"
    cs_text = String(512, 0)
    
    strcpy cs_text, cs_word
    
    MsgBox (cs_text)
    
End Sub


Выдаёт ошибку Bad DLL calling convention(пытаюсь сделать в Exel'евском VBA)
Подскажите пожалуйста что не так.
Re: Экспорт функций из msvcrt.dll в VBA
От: ZAMUNDA Земля для жалоб и предложений
Дата: 30.10.06 09:33
Оценка:
Здравствуйте, vba_user, Вы писали:

_>Выдаёт ошибку Bad DLL calling convention(пытаюсь сделать в Exel'евском VBA)

_>Подскажите пожалуйста что не так.
Лень. =) НО могу дать альтернативный путь:
1. Использовать
Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)


2. Не пользоваться WinAPI вообще. Оператор "=" в VBA прекрасно справляется со своими обязанностями.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Re[2]: Экспорт функций из msvcrt.dll в VBA
От: vba_user  
Дата: 31.10.06 17:07
Оценка:
ZAM>Лень. =) НО могу дать альтернативный путь:
ZAM>1. Использовать
Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)

Ну в качестве альтернативного пути можно было бы взять и lstrcpy из kernal32(хотя она и в 2 раза медленнее чем strcpy), но дело не в этом.
Меня интересовало почему нельзя экспортировать из msvcrt.dll. А именно хотелось бы экспортировать любимый sscanf и прочие очень удобные функции.
Ответ я нашол, но никак не хочется верить что нельзя экспортнуть cdecl функции в бэйсик.
Дело в том что в куске программы идёт обработка огромного количества строк, и очень не хватает любимых Си-функций, к которым привык.

ZAM>2. Не пользоваться WinAPI вообще. Оператор "=" в VBA прекрасно справляется со своими обязанностями.

Насчёт оператора "=" согласен.
Re[3]: Экспорт функций из msvcrt.dll в VBA
От: ZAMUNDA Земля для жалоб и предложений
Дата: 31.10.06 19:43
Оценка:
Здравствуйте, vba_user, Вы писали:

_>Меня интересовало почему нельзя экспортировать из msvcrt.dll. А именно хотелось бы экспортировать любимый sscanf и прочие очень удобные функции.

В VB есть туева хуча функций для работы со строками. Есть также VBScripts Regular Expression которые могут частично заменить твой sscanf. Но без ..printf ..scanf можно прекрасно обходиться, даже не используя RegExp... Что я и делаю, последние два года программируя на C++. =)

_>Ответ я нашол, но никак не хочется верить что нельзя экспортнуть cdecl функции в бэйсик.

УВЕРУЙ ЖЕ В ЭТО ОТРАК! И да пребудет с тобой SDK, да WinAPI, MSDN апостолы его! АМИНЬ!!! :)

_>Дело в том что в куске программы идёт обработка огромного количества строк, и очень не хватает любимых Си-функций, к которым привык.

"Глупцом следует считать того, кто не умеет приспособиться!" [цЭ] Эразм Роттердамский
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.