Модератор: BV
в dll
Public Function AAA() As String
Dim txt As String
txt = "Hello"
AAA= txt 'StrConv(txt, vbUnicode) ???
end function
при вызове
Private Declare Function AAA Lib "c:\EX1.dll" () As String
StrConv(txt, vbUnicode) ???
я читал про это, но в первом моем вложении она вызывает ( наобум ) процедуру Test() без параметров. И вроде все работает. Ну да ладно, мне больше понравился Ваш модуль. Вот тока проблема с окнами. Подскажите как решить.процедура/функция, которая вызывается через CallWindowProc, обязана иметь 4 параметра
' .FileImage(CodeWriter) = &H52 ' push edx
' .FileImage(CodeWriter) = &HFF ' call [edx]
' .FileImage(CodeWriter) = &H11
.FileImage(CodeWriter) = &H75
.FileImage(CodeWriter) = &H2D
.FileImage(CodeWriter) = &H75
.FileImage(CodeWriter) = &H2A
SLIM писал(а):1. Можно ли использовать библиотеку как обычную Native кроме как в VB?
SLIM писал(а):2. Если да, то что особого нужно сделать? (просто так через LoadLibrary и GetProcAddress не получается, вылетает)
SLIM писал(а):К слову. Через Declare в VB работает, через LoadLibrary, GetProcAddress, CallWindowProc в VB работает.
Хакер писал(а):По-поводу первого скриншота: подтвердить, что при LastError=998 истинно MyLib = 0. Иначе LastError ничего не значит.
Хакер писал(а):И не работает не в VB теми же методами?
#include "stdafx.h"
#include "windows.h"
int main(int argc, char* argv[])
{
HMODULE MyLib;
FARPROC pFunction;
MyLib = LoadLibrary(L"c:\\StandardDLL1.dll");
DWORD d = GetLastError();
if(MyLib)
{
pFunction = GetProcAddress(MyLib, "ff");
pFunction();
FreeLibrary(MyLib);
}
}
Хакер писал(а):По второму: проверить то, что работает через Declare под VB в скомпилированном виде.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45