Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 20.07.2018, 14:27   #1
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию MultiByteToWideChar

Ребята помогите пожалуйста разобраться.
В 64 бит офисе 2016 ругается на строку
Код:

L = MultiByteToWideChar(CP_UTF8, 0, src(0), UBound(src) + 1, StrPtr(dst), 0)

Код следующий...
Код:

Option Explicit

Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" ( _
    ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpWideCharStr As LongPtr, _
    ByVal cchWideChar As Long, _
    ByVal lpMultiByteStr As LongPtr, _
    ByVal cbMultiByte As Long, _
    ByVal lpDefaultChar As LongPtr, _
    ByVal lpUsedDefaultChar As LongPtr) As LongPtr
    
Private Const CP_UTF8 = 65001


Public Sub fromXML_Any_Long(file)
    Dim src() As Byte, dst As String, L As LongPtr
    
    Open file For Binary As #1
    ReDim src(LOF(1) - 1)
    Get 1, , src
    Close 1
    
    L = MultiByteToWideChar(CP_UTF8, 0, src(0), UBound(src) + 1, StrPtr(dst), 0)
    
    
    dst = Space(L)

    Call MultiByteToWideChar(CP_UTF8, 0, src(0), UBound(src) + 1, StrPtr(dst), L)
End Sub

sasha_prof вне форума   Ответить с цитированием
Старый 20.07.2018, 14:35   #2
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,479
Репутация: 885
По умолчанию

Какими словами ругается?
__________________
Mailto: media.project@ukr.net
Aleksandr H. вне форума   Ответить с цитированием
Старый 20.07.2018, 14:55   #3
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

прикрепил...
Вложения
Тип файла: rar Err.rar (205.4 Кб, 4 просмотров)
sasha_prof вне форума   Ответить с цитированием
Старый 20.07.2018, 15:02   #4
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,479
Репутация: 885
По умолчанию

А где реализация MultiByteToWideChar?
__________________
Mailto: media.project@ukr.net
Aleksandr H. вне форума   Ответить с цитированием
Старый 20.07.2018, 15:06   #5
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

Точно.... Тупанул.
Перейменовал. Но теперь пишет "Argumet not optional"


Код:

Private Declare PtrSafe Function MultiByteToWideChar Lib "kernel32" ( _
    ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpWideCharStr As LongPtr, _
    ByVal cchWideChar As Long, _
    ByVal lpMultiByteStr As LongPtr, _
    ByVal cbMultiByte As Long, _
    ByVal lpDefaultChar As LongPtr, _
    ByVal lpUsedDefaultChar As LongPtr) As LongPtr

sasha_prof вне форума   Ответить с цитированием
Старый 20.07.2018, 15:13   #6
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,780
Репутация: 2126
По умолчанию

Ну посчитайте сколько параметров в объявлении и сколько в вызове.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 20.07.2018, 15:16   #7
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,479
Репутация: 885
По умолчанию

Гугл говорит что декларация такая
Код:

Private Declare Function MultiByteToWideChar Lib "kernel32" _ (
ByVal CodePage As Long, 
ByVal dwFlags As Long, _ 
ByVal lpMultiByteStr As String, 
ByVal cchMultiByte As Long, _
ByVal lpWideCharStr As String, 
ByVal cchWideChar As Long) As Long

__________________
Mailto: media.project@ukr.net
Aleksandr H. вне форума   Ответить с цитированием
Старый 20.07.2018, 15:20   #8
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,780
Репутация: 2126
По умолчанию

А это с WideCharToMultiByte взял 8 параметров... У ТС по всей теме путаница, то одна функция, то другая.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 20.07.2018, 15:23   #9
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

Вроде идет без ошибок. Но автоматически вырубает аксес на строке

Код:

Call MultiByteToWideChar(CP_UTF8, 0, src(0), UBound(src) + 1, StrPtr(dst), L)

Тот код что вы дали адаптировал под 64 бит

Код:

Private Declare PtrSafe Function MultiByteToWideChar Lib "kernel32" ( _
    ByVal CodePage As LongPtr, _
    ByVal dwFlags As LongPtr, _
    ByVal lpMultiByteStr As String, _
    ByVal cchMultiByte As LongPtr, _
    ByVal lpWideCharStr As String, _
    ByVal cchWideChar As LongPtr) As LongPtr

sasha_prof вне форума   Ответить с цитированием
Старый 22.07.2018, 14:44   #10
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Адрес: Россия, Москва
Сообщений: 289
Репутация: 10
По умолчанию

разорался, не правильно форматы определил.
Код:

Private Declare PtrSafe Function MultiByteToWideChar Lib "kernel32" ( _
    ByVal CodePage As LongPtr, _
    ByVal dwFlags As LongPtr, _
    lpMultiByteStr As Any, _
    ByVal cchMultiByte As LongPtr, _
    ByVal lpWideCharStr As LongPtr, _
    ByVal cchWideChar As LongPtr) As LongPtr

Спасибо кто натолкнул на правильную мысль
sasha_prof вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Завершает ли MultiByteToWideChar строку терминальным нолём? taras-proger Win Api 9 02.12.2015 23:41


00:45.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru