powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как вызвать функцию WinAPI
6 сообщений из 6, страница 1 из 1
Как вызвать функцию WinAPI
    #32239930
Flug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая функция в WinAPI

BOOL GetUserName(
LPTSTR lpBuffer, // name buffer
LPDWORD nSize // size of name buffer
);

Как в VB ее правильно описать и затем вызвать?.

Как вообще в VB описыва.тся переменные типа LPTSTR ?

Заранее спасибо.
...
Рейтинг: 0 / 0
Как вызвать функцию WinAPI
    #32240072
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример от товарища апплемана :
GetUserName

VB Declaration

Declare Function GetUserName& Lib "advapi32.dll" Alias "GetUserNameA" (ByVal _
lpBuffer As String, nSize As Long)

Description

Retrieves the name of the current user.

Use with VB

No problem.

Parameter Type/Description
lpBuffer String—A string buffer preinitialized to length nSize. It will be loaded with the user name.
nSize Long—A long variable initialized to the length of lpBuffer. On return it will contain the number of characters loaded into lpBuffer
Return Value

Long—True (nonzero) on success, zero on error. Sets GetLastError.

Platform

Windows 95, Windows NT

Example

Dim s$, cnt&, dl&
cnt& = 199
s$ = String$(2ØØ, Ø)
dl& = GetUserName(s$, cnt)
Debug.Print Left$(s$, cnt); cnt
...
Рейтинг: 0 / 0
Как вызвать функцию WinAPI
    #32244232
cancel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вот как написать функцию на Delphi, чтобы она возвращала строку в VB.
какие вообще правила передачи параметров для VB??? точнее для VBA...
...
Рейтинг: 0 / 0
Как вызвать функцию WinAPI
    #32244641
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Delphi при написании обычной DLL для строк можно использовать только pchar.

Но лучше написать ActiveX-объект. Это "роднее" и для VB, и для VBA, да к тому же в Delphi тогда можно будет использовать WideString и String, не задумываясь - все автоматом преобразуется к OLE-совместимому типу.
...
Рейтинг: 0 / 0
Как вызвать функцию WinAPI
    #32245705
cancel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а мне посоветовали просто OleVariant... удобно...
...
Рейтинг: 0 / 0
Как вызвать функцию WinAPI
    #32246117
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OleVariant в простую DLL (не activex) ?
Можешь сделать, конечно, но может наступить жопа в виде Access Violation.

В ActiveX можно конечно и OleVariant, и просто Variant, и любой стринг.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как вызвать функцию WinAPI
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]