Войти
Вело-изобретателиФорумSR2D - софтовый 2D движок

C# и vb.net порт для SR2D версии 3.1.

Страницы: 1 2 Следующая »
#0
14:34, 25 янв. 2012

Портировал третью версию SR2D на C# и vb.net.
Пример пока один - DPBM:

Правка:
Рабочие ссылки в теме про последнюю версию:
http://www.gamedev.ru/community/bycircle/forum/?id=162451#m0

#1
15:11, 25 янв. 2012

Попробовал версию для C# под VS2010 - нормально сконверилось и запустилось, выдавало 200-260 фпс на встроенном интеле. Это реально софтвар?

#2
15:13, 25 янв. 2012

Полный софтвар.

#3
15:16, 25 янв. 2012

Я впечатлён. Надо на более слабом проце попробовать.

#4
15:18, 25 янв. 2012

Надо бы ещё на Дельфи портировать, только я в Дельфи ни в зуб ногой :).

#5
23:11, 27 янв. 2012

Mikle
А как передать в С++ хендл окна в VB.Net?
Там
Me.Handle
А в С++
HWHD

#6
11:33, 28 янв. 2012

Andconst
Не очень понял, откуда куда передать.
Для SR2D, точнее для ф-ции SetDiBitsToDevice, требуется hDC, его можно получить из HWHD с помощью API GetDC из user32.dll.

#7
21:39, 28 янв. 2012


В С++ для DirectX9 нужно в PresentParameters прописать хендл окна HWND, чтобы вывести картинку в окно
Я так рассудил

Посмотрел

Me.Text = Me.Handle.ToString

Каждый раз я получал разный номер при запуске программы

Я взял в Visual Studio C++ _ PresentParameters _  и в нем прописал номер действующего окна VB.NET
Ошибка!

Хотел нарисовать кубик!

#8
22:13, 28 янв. 2012

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()
#9
22:29, 28 янв. 2012

А для того чтобы создавать DLL в С++ необходимо знать классы ?
Я увидел, что при создании статической библиотеки, невозможно в свойствах проекта поставить
в компоновку либ файлы !!!
Mikle
а как сделать так в С++ , чтобы подключил в Vb.Net  например MathPlus.DLL от С++

В VB.NET поставить ссылку на MathPlus.DLL

Хотя бы одна функция, которая складывает числа

'********************************

  Dim aa As Integer

  aa = mplus(5,8)

'********************************

#10
22:45, 28 янв. 2012

Посмотри пример:
http://tuapse-mikle.narod.ru/UseDLL.zip
тут исходники тестового проекта на vb.net и DLL на C++.
Только, если хочешь, чтобы эта связка работала на Win64, ставь в свойствах vb.net проекта X86 платформу.

#11
23:46, 28 янв. 2012

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

#12
0:18, 29 янв. 2012

Andconst
> Попробуем создать SR3D
Насколько мне известно он уже есть...

Пруф: http://www.gamedev.ru/code/forum/?id=124805

#13
0:52, 29 янв. 2012

Я имел ввиду типа хардворного XNA
SR - приставка софт! получается !

Давайте

VB.NET + (name ?) HARD.ENGINE (2D + 2.5D + 3D)

#14
11:04, 29 янв. 2012

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++? Не знаю, не пользовался никогда.

Страницы: 1 2 Следующая »
Вело-изобретателиФорумSR2D - софтовый 2D движок

Тема в архиве.