Thread overview
Raylib Kütüphanesi const(char)* text
Jul 21, 2023
Cos00kun
Jul 21, 2023
Cos00kun
Jul 21, 2023
Tarik
Jul 21, 2023
Cos00kun
Jul 21, 2023
Cos00kun
Jul 21, 2023
Cos00kun
Jul 21, 2023
Ferhat Kurtulmuş
Jul 22, 2023
Tarik
Jul 22, 2023
Cos00kun
July 21, 2023

Raylib kütüphanesiyle birşeyler yapayım dedim bir yandan D diline aralarda bakmaya çalışırken. Konu başlığındaki gibi; C dilinde const(char)* text değişkeninin D dilindeki karşılığı ne olabilir ? auto veya String yazınca çalışmadı;

DrawText("Test ediyoruz", 220, 300, 26, Colors(194,114,85,255));
çalışırken..

auto yaz = "Test ediyoruz"
DrawText(yaz, 220, 300, 26, Colors(194,114,85,255));

çalışmıyor.

July 21, 2023

On Friday, 21 July 2023 at 18:23:33 UTC, Cos00kun wrote:

>

.

Hata mesajını yazmayı unutmuşum;

C:\Users\Co\Desktop\sil>dub
    Starting Performing "debug" build using C:\D\dmd2\windows\bin64\dmd.exe for x86_64.
    Building calistir ~master: building configuration [windows-app]
source\app.d(16,11): Error: function `raylib.DrawText(const(char)* text, int posX, int posY, int fontSize, Color color)` is not callable using argument types `(string, int, int, int, Colors)`
source\app.d(16,11):        cannot pass argument `yaz` of type `string` to parameter `const(char)* text`
Error C:\D\dmd2\windows\bin64\dmd.exe failed with exit code 1.
July 21, 2023

On Friday, 21 July 2023 at 18:23:33 UTC, Cos00kun wrote:

>

Raylib kütüphanesiyle birşeyler yapayım dedim bir yandan D diline aralarda bakmaya çalışırken. Konu başlığındaki gibi; C dilinde const(char)* text değişkeninin D dilindeki karşılığı ne olabilir ? auto veya String yazınca çalışmadı;

DrawText("Test ediyoruz", 220, 300, 26, Colors(194,114,85,255));
çalışırken..

auto yaz = "Test ediyoruz"
DrawText(yaz, 220, 300, 26, Colors(194,114,85,255));

çalışmıyor.

const auto denedin mi

July 21, 2023

On Friday, 21 July 2023 at 19:29:43 UTC, Tarik wrote:

>

On Friday, 21 July 2023 at 18:23:33 UTC, Cos00kun wrote:

>

Raylib kütüphanesiyle birşeyler yapayım dedim bir yandan D diline aralarda bakmaya çalışırken. Konu başlığındaki gibi; C dilinde const(char)* text değişkeninin D dilindeki karşılığı ne olabilir ? auto veya String yazınca çalışmadı;

DrawText("Test ediyoruz", 220, 300, 26, Colors(194,114,85,255));
çalışırken..

auto yaz = "Test ediyoruz"
DrawText(yaz, 220, 300, 26, Colors(194,114,85,255));

çalışmıyor.

const auto denedin mi

denedim o da olmadı ama şu çalıştı;
DrawText(toStringz(yaz), 220, 300, 26, Colors(194,114,85,255));
ne alakaysa

July 21, 2023

On Friday, 21 July 2023 at 20:12:12 UTC, Cos00kun wrote:

>

.
Cevabı burdaymış. Sanırım D dilinin bu bizim stringleri kullanırken sonunda kullandığı boşluk/sıfır v.s karakterleriyle ilgili bir problem. Çokta anlamadım ama en azından nasıl yapacağımı biliyorum diyelim.

July 21, 2023

On Friday, 21 July 2023 at 20:23:50 UTC, Cos00kun wrote:

>

https://github.com/raysan5/raylib/issues/1527

July 21, 2023

On Friday, 21 July 2023 at 20:23:50 UTC, Cos00kun wrote:

>

On Friday, 21 July 2023 at 20:12:12 UTC, Cos00kun wrote:

>

.
Cevabı burdaymış. Sanırım D dilinin bu bizim stringleri kullanırken sonunda kullandığı boşluk/sıfır v.s karakterleriyle ilgili bir problem. Çokta anlamadım ama en azından nasıl yapacağımı biliyorum diyelim.

C de stringler \0 baytı ile bitiyor bu c nin bir tasarım hatası. Çünkü string sadece bir pointer, algoritmalar stringin bittiği yeri döngü içinde boş bayta geldiginde anlayabiliyor. D de bu sıkıntı yok çünkü stringler slice olduğundan lengthi ile birlikte yaşıyor. Ama string hazır değerleri yani literallere c ile uyumlu çalışsın diye (öyle olmalı) \0 baytı ekleniyor otomatik olarak d de. Bu yüzden toStringz diye bir fonksiyona ihtiyaç oluyor d de c donksiyonlarina string gönderirken. toStringz eğer zero baytı yoksa stringde (muhtemelen literal initialization yok) yeni bir alokasyon ile zero baytı eklenip c nin beklentisine uygun string hazırlıyor.

July 22, 2023

On Friday, 21 July 2023 at 18:23:33 UTC, Cos00kun wrote:

>

Raylib kütüphanesiyle birşeyler yapayım dedim bir yandan D diline aralarda bakmaya çalışırken. Konu başlığındaki gibi; C dilinde const(char)* text değişkeninin D dilindeki karşılığı ne olabilir ? auto veya String yazınca çalışmadı;

DrawText("Test ediyoruz", 220, 300, 26, Colors(194,114,85,255));
çalışırken..

auto yaz = "Test ediyoruz"
DrawText(yaz, 220, 300, 26, Colors(194,114,85,255));

çalışmıyor.

toStringz("Test ediyoruz") dene, bu fonksiyon std.string'i raylibin kabul ettiği C stili \0 ile biten char array a çevirir

July 22, 2023

Ferhat Kurtulmuş ve Tarık

>

Her ikinize de teşekkürler anladım olayı(bilgim ölçüsünde).