Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 25.11.2011
Сообщений: 20
1

Dll обертка для функции CreateWindow

12.03.2013, 18:47. Показов 1377. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Используя JNI необходимо вызвать функцию WinApi для создания окна. Окно не создается, возможно по причине неправильного параметра hInstance, но точно не знаю, так как с WinApi знаком поверхностно.
Здесь из Java подгружаю dll (здесь все хорошо работает)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Native4 {
    static 
    {
        try{
            System.loadLibrary("jni4");
        }catch(UnsatisfiedLinkError e){
        System.out.println("Don't load dll");
        }
        
    }
 
    private native void createWindows(String lpClassName, String lpWindowName );
 
    public static void main(String[] args)  {
        
        Native4 app = new Native4();
        
        app.createWindows("ClassWindow", "MyWindow");
    }
}
Сама dll..возможно я не правильно создаю окно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <jni.h>
#include <stdio.h>
#include "Native4.h"
#include "winapi.h"
#include <windows.h>
 
JNIEXPORT void JNICALL Java_Native4_createWindows
  (JNIEnv* env, jobject this_obj, jstring msg, jstring title)
{
     const char *lpClassName = env->GetStringUTFChars(msg, NULL);
     const char *lpWindowName = env->GetStringUTFChars(title, NULL);
    
     HWND hWnd;
     HINSTANCE hInstance;   
     hInstance = GetModuleHandle(NULL);
  
     hWnd =  CreateWindow(lpClassName,
                   lpWindowName,
                   WS_OVERLAPPEDWINDOW|WS_VISIBLE,
                   0,0,640,480,0,0,hInstance,NULL);
 
    ShowWindow(hWnd, SW_SHOW);
    UpdateWindow(hWnd);
 
    env->ReleaseStringUTFChars(msg, lpClassName);
    env->ReleaseStringUTFChars(title, lpWindowName);
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2013, 18:47
Ответы с готовыми решениями:

А можно узнать с каким значением второго параметра функции CreateWindow создано окно?
Есть дескриптор. Можно по нему вытянуть эту инфу?

Обертка над boost::lexical_cast для работы с unsigned типами
Пару дней назад выяснилось, что boost::lexical_cast не удовлетворяет нескольким требованиям в...

C++ обертка для dll C
Как написать C++ обертку для динамической библиотеки C?

Обертка над libipriv.dll
Здравствуйте уважаемые форумчане. Помогите пожалуйста. Использую библиотеку libipriv.dll для...

0
12.03.2013, 18:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2013, 18:47
Помогаю со студенческими работами здесь

Что такое обертка функции?
дана функция на входе получает 2 параметра имя и возраст. srting children(string ima, int age)...

При вызове CreateWindow в функции вылетает необработанное исключение (найти и исправить ошибку)
При вызове CreateWindow в функции HRESULT Render_CreateWindow(LPCTSTR wclass, LPCTSTR wname,...

Обертка для list
Есть следующая иерархия классов: class A {}; class B : public A {}; class C : public A {};...

Обертка для изображений
Подскажите, пожалуйста, как можно сделать подобную обертку для изображений (изображения будут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru