У меня есть созданная мной собственная библиотека подключаемого модуля NSIS. В dll есть одна функция, которая принимает номер идентификатора hwnd в качестве параметра, а затем создает окно поля редактирования с этим hwnd в качестве родительского hwnd поля редактирования.
Моя проблема: Мне не удается передать HWND в свою DLL подключаемого модуля NSIS. Я могу получить идентификатор hwnd, а затем определить фактический hwnd (я думаю), но когда я создаю свой блок редактирования, он никогда не отображается в hwnd?
Что я делаю неправильно. Как мне правильно найти hwnd, переданный как параметр?
extern "C" void __declspec(dllexport) __cdecl CreateEditbox(HWND hwndParent, int string_size, TCHAR *variables, stack_t **stacktop, extra_parameters *extra)
{
g_hwndParent=hwndParent;
EXDLL_INIT();
{
int hwndID = popint();
HWND hwnd = GetDlgItem(hwndParent, hwndID);
HWND a = CreateWindowEx(WS_EX_TRANSPARENT, TEXT("Edit"), text, WS_VISIBLE|WS_CHILD, 20, 20, 100, 20,
hwnd, NULL, GetModuleHandle(NULL), NULL);
}
}
Мой код NSIS:
Page custom Start
Function Start
nsDialogs::Create 1018
Pop $0
tbox::CreateEditbox $0
nsDialogs::Show
FunctionEnd