Портировал третью версию SR2D на C# и vb.net.
Пример пока один - DPBM:
Правка:
Рабочие ссылки в теме про последнюю версию:
http://www.gamedev.ru/community/bycircle/forum/?id=162451#m0
Попробовал версию для C# под VS2010 - нормально сконверилось и запустилось, выдавало 200-260 фпс на встроенном интеле. Это реально софтвар?
Полный софтвар.
Я впечатлён. Надо на более слабом проце попробовать.
Надо бы ещё на Дельфи портировать, только я в Дельфи ни в зуб ногой :).
Mikle
А как передать в С++ хендл окна в VB.Net?
Там
Me.Handle
А в С++
HWHD
Andconst
Не очень понял, откуда куда передать.
Для SR2D, точнее для ф-ции SetDiBitsToDevice, требуется hDC, его можно получить из HWHD с помощью API GetDC из user32.dll.
В С++ для DirectX9 нужно в PresentParameters прописать хендл окна HWND, чтобы вывести картинку в окно
Я так рассудил
Посмотрел
Me.Text = Me.Handle.ToString
Каждый раз я получал разный номер при запуске программы
Я взял в Visual Studio C++ _ PresentParameters _ и в нем прописал номер действующего окна VB.NET
Ошибка!
Хотел нарисовать кубик!
Andconst
> Каждый раз я получал разный номер при запуске программы
Всё правильно - это же Managed, там нет стабильных указателей, посмотри, как у меня в примере:
Private Sub Form1_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HandleCreated
Grp = Me.CreateGraphics
hDC = New HandleRef(Grp, Grp.GetHdc)
End SubТак hDC получается стабильным, в конце нужно освободить:
Grp.Dispose()
А для того чтобы создавать DLL в С++ необходимо знать классы ?
Я увидел, что при создании статической библиотеки, невозможно в свойствах проекта поставить
в компоновку либ файлы !!!
Mikle
а как сделать так в С++ , чтобы подключил в Vb.Net например MathPlus.DLL от С++
В VB.NET поставить ссылку на MathPlus.DLL
Хотя бы одна функция, которая складывает числа
'********************************
Dim aa As Integer
aa = mplus(5,8)
'********************************
Посмотри пример:
http://tuapse-mikle.narod.ru/UseDLL.zip
тут исходники тестового проекта на vb.net и DLL на C++.
Только, если хочешь, чтобы эта связка работала на Win64, ставь в свойствах vb.net проекта X86 платформу.
1) Там чисто машинный DLL как я понял ?!!!
2) Поэтому внесена декларация в VB.NET ?!!
3) А ничего не будет если выкинуть stdafx ?
4) А что нужно написать, если создать пустой DLL?
5) Замедлит ли скорость использование С++ NET DLL ?
6) Зачем это (такой код)?
#include "stdafx.h" BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch ( ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }
7) Что это такое ?
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
8) Почему задана такая строка в VB.NET?
Imports System.Runtime.InteropServices
9) А как внутренности def перенести в свойства проекта (имею ввиду избавиться от def) + картинка ?
10) И как прописать включение + картинка ?
Mikle
Попробуем создать SR3D NET !!!
Или разобрать SlimDX ?
Я немного начал
http://www.gamedev.ru/code/forum/?id=157924
Andconst
> Попробуем создать SR3D
Насколько мне известно он уже есть...
Я имел ввиду типа хардворного XNA
SR - приставка софт! получается !
Давайте
VB.NET + (name ?) HARD.ENGINE (2D + 2.5D + 3D)
max255
> Насколько мне известно он уже есть...
Ну... это так, просто тест.
Andconst
> Там чисто машинный DLL как я понял ?!!!
Да, чисто НАТИВНЫЙ.
Andconst
> Зачем это (такой код)?
Это стандартная Main функция для нативной DLL.
Andconst
> 7) Что это такое ?
> case DLL_PROCESS_ATTACH:
> case DLL_THREAD_ATTACH:
> case DLL_THREAD_DETACH:
> case DLL_PROCESS_DETACH:
Сюда можно вписать свои команды, которые тебе нужно, чтобы вызывались при соответствующих событиях. Если не используешь - можно удалить, хотя компилятор сам удалит пустые кейсы.
Andconst
> Почему задана такая строка в VB.NET?
> Imports System.Runtime.InteropServices
Просто стандартный спороб декларации ф-ции из DLL, можно вместо этого по старинке написать "Declare Function...", тоже будет работать.
Andconst
> как внутренности def перенести в свойства проекта
Для этого существует соответствующий "pragma comment", точнее не помню, надо спросить у матёрых сишников.
Andconst
> А ничего не будет если выкинуть stdafx ?
Ничего, просто впиши у себя в коде DllMain.
Andconst
> Замедлит ли скорость использование С++ NET DLL ?
В смысле Managed Dll на C++? Не знаю, не пользовался никогда.
Тема в архиве.