Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
#1

Переопределение формального параметра XXX - C++

04.06.2014, 11:58. Просмотров 652. Ответов 2
Метки нет (Все метки)

Код
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <jni.h>
#include <windows.h>
 
typedef jint(JNICALL *JNI_CREATEJAVAVM)(JavaVM **, JNIEnv **, void *);
JNI_CREATEJAVAVM jni_JNI_CreateJavaVM = NULL;
 
static JavaVM* jvm = NULL;
static JNIEnv* env = NULL;
 
extern "C" __declspec(dllexport)
void __cdecl  CreateMinecraftGame(LPTSTR jvmPath, LPSTR optionString0, LPSTR optionString1, LPSTR optionString2)
{
    char* Path = "C:\\Program Files\\Java\\jre7\\bin\\server\\jvm.dll";
    char* option0 = "-Xmx2G -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true";
    char* option1 =
        "-Djava.class.path=C:\\Users\\Виталий\\minecraft\\libraries\\net\\minecraft\\launchwrapper\\1.9\\launchwrapper-1.9.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\net\\minecraftforge\\forge\\1.7.2-10.12.0.971\\forge-1.7.2-10.12.0.971.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\ow2\\asm\\asm-all\\4.1\\asm-all-4.1.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\scala-lang\\scala-library\\2.10.2\\scala-library-2.10.2.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\scala-lang\\scala-compiler\\2.10.2\\scala-compiler-2.10.2.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\java3d\\vecmath\\1.3.1\\vecmath-1.3.1.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\net\\sf\\trove4j\\trove4j\\3.0.3\\trove4j-3.0.3.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\ibm\\icu\\icu4j-core-mojang\\51.2\\icu4j-core-mojang-51.2.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\net\\sf\\jopt-simple\\jopt-simple\\4.5\\jopt-simple-4.5.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\lzma\\0.0.1\\lzma-0.0.1.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\paulscode\\codecjorbis\\20101023\\codecjorbis-20101023.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\paulscode\\codecwav\\20101023\\codecwav-20101023.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\paulscode\\libraryjavasound\\20101123\\libraryjavasound-20101123.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\paulscode\\librarylwjglopenal\\20100824\\librarylwjglopenal-20100824.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\paulscode\\soundsystem\\20120107\\soundsystem-20120107.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\io\\netty\\netty-all\\4.0.10.Final\\netty-all-4.0.10.Final.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\google\\guava\\guava\\15.0\\guava-15.0.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\apache\\commons\\commons-lang3\\3.1\\commons-lang3-3.1.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\commons-io\\commons-io\\2.4\\commons-io-2.4.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\net\\java\\jinput\\jinput\\2.0.5\\jinput-2.0.5.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\net\\java\\jutils\\jutils\\1.0.0\\jutils-1.0.0.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\google\\code\\gson\\gson\\2.2.4\\gson-2.2.4.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\com\\mojang\\authlib\\1.3\\authlib-1.3.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\apache\\logging\\log4j\\log4j-api\\2.0-beta9\\log4j-api-2.0-beta9.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\apache\\logging\\log4j\\log4j-core\\2.0-beta9\\log4j-core-2.0-beta9.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\lwjgl\\lwjgl\\lwjgl\\2.9.0\\lwjgl-2.9.0.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\org\\lwjgl\\lwjgl\\lwjgl_util\\2.9.0\\lwjgl_util-2.9.0.jar;"
        "C:\\Users\\Виталий\\minecraft\\libraries\\1.7.2-Forge10.12.0.976\\1.7.2-Forge10.12.0.976.jar";
    char* option2 = "-Djava.library.path=C:\\Users\\Виталий\\minecraft\\versions\\1.7.5\\1.7.5-natives";
 
    HMODULE hJvm = ::LoadLibrary(Path); // Загружаем jvm.dll
    jni_JNI_CreateJavaVM = (JNI_CREATEJAVAVM)GetProcAddress(hJvm, "JNI_CreateJavaVM"); //Получаем адреес функции в dll
 
    JavaVMOption options[3];
    options[0].optionString = option0;
    options[1].optionString = option1;
    options[2].optionString = option2;
 
    //Формируем опции запуска виртуальной машины
    JavaVMInitArgs args;
    args.options = options;
    args.nOptions = 3; // Количество опций
    args.ignoreUnrecognized = FALSE;
    args.version = JNI_VERSION_1_6;
 
 
    //Вызываем функцию JNI_CreateJavaVM из dll адресс которой получили ранее
    jni_JNI_CreateJavaVM(&jvm, &env, &args);
 
 
    //Forge 1.7.2 вызываем main функцию класса net.minecraft.launchwrapper.Launch
    jclass class_Launch = env->FindClass("net/minecraft/client/main");
 
    jmethodID mid = env->GetStaticMethodID(class_Launch, "main", "([Ljava/lang/String;)V");
    jobjectArray str_array = env->NewObjectArray(12, env->FindClass("java/lang/String"), env->NewStringUTF(""));
    env->SetObjectArrayElement(str_array, 0, env->NewStringUTF("--username"));
    env->SetObjectArrayElement(str_array, 1, env->NewStringUTF("Test"));
    env->SetObjectArrayElement(str_array, 2, env->NewStringUTF("--version"));
    env->SetObjectArrayElement(str_array, 3, env->NewStringUTF("1.7.2"));
    env->SetObjectArrayElement(str_array, 4, env->NewStringUTF("--gameDir"));
    env->SetObjectArrayElement(str_array, 5, env->NewStringUTF("C:\\Users\\Виталий\\minecraft"));
    env->SetObjectArrayElement(str_array, 6, env->NewStringUTF("--assetsDir"));
    env->SetObjectArrayElement(str_array, 7, env->NewStringUTF("C:\\Users\\Виталий\\minecraft\\assets\\virtual\\legacy"));
    env->SetObjectArrayElement(str_array, 8, env->NewStringUTF("--accessToken"));
    env->SetObjectArrayElement(str_array, 9, env->NewStringUTF("0"));
 
    env->CallStaticVoidMethod(class_Launch, env->GetStaticMethodID(class_Launch, "main", "([Ljava/lang/String;)V"), str_array);
}
Ошибки

Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup C:\Users\Виталий\documents\visual studio 2010\Projects\DLLmine\DLLmine\MSVCRTD.lib(crtexe.obj)
Ошибка 3 error LNK1120: 1 неразрешенных внешних элементов C:\Users\Виталий\documents\visual studio 2010\Projects\DLLmine\Debug\DLLmine.exe

P.S.Я случайно не ту тему указал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 11:58     Переопределение формального параметра XXX
Посмотрите здесь:

Переопределение формального параметра - C++
Мне нужно разбить программу на три файла. Когда вызываю эту функцию bool prov_file(ifstream file) { ifstream file; if (file.fail())...

Ошибка: "переопределение формального параметра" - C++
По условии задачи структуру и int.main() редактировать нельзя. Вылетает ошибка:...

Ошибка "переопределение формального параметра с" - C++
выдает ошибку &quot;переопределение формального параметра с&quot; подскажите как исправить double** nmat(double** a, double** b, int n, int m,...

Передача массива, как формального параметра в функцию - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; const int MAX_SIZE = 100; void print_array(int a, int size)...

Как указать ссылку на указатель в качестве формального параметра - C++ Builder
Здравствуйте! Есть функция включения элементов в стек. Как правильно написать прототип функции. т.е. как указать ссылку на указатель в...

Обработка телефонного номера в форме (XXX)XXX-XX-XX - C++
Напишите программу, которая вводит телефонный номер в форме (XXX)XXX-XX-XX. Программа должна извлекать в виде лексем код места...

конструкция #if not defined "xxx" #define xxx нужна ли? - C++
Решил вот научится писать не просто код, а правильный код. часто в заголовочных файлах вижу конструкцию #if !defined(_xxx) #define...

ошибка stray '\xxx' in program - C++
Не пойму что за ошибка! Ввел обычное перечисление, и всплыла эта непонятная ошибка. Если закомментировать enum, то всё впорядке. Что это...

Где найти TeeChart Pro v8 xxx - C++ Builder
Уважаемые коллеги, помогите пожалуйста! Возникла необходимость доработать старую программу , написанную под BCB6. Необходимо использовать...

Префиксы xxx перед именами функций ядра Windows - C++ WinAPI
В исходниках Winows NT функции из раздела \ntuser\kernel вместо обычных имен предваряются префиксами &quot;xxx&quot;, например xxxSendMessage()...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 1
Завершенные тесты: 1
04.06.2014, 15:34     Переопределение формального параметра XXX #2
нет функции main()
Natsu_Zirok
-1 / 0 / 1
Регистрация: 14.10.2013
Сообщений: 156
04.06.2014, 16:09  [ТС]     Переопределение формального параметра XXX #3
Эм.. Спасибо.. Что то я конкретно затормозил...
Вопрос: как вызвать функцию из DLL с определенными параметрами на подобии такого:
C++
1
2
3
4
5
6
7
8
9
10
//в DLL (не стану мудрить)
function CreateProcces(){
UserName = "Player"; //по стандарту
//код
}
 
//в файле запуска (main())
int main(){
CreateProcces(UserName = UserName_In); //вызов с присвоением другого usernam'a
}
Yandex
Объявления
04.06.2014, 16:09     Переопределение формального параметра XXX
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru