Forum: D Programlama Dili RSS
COM Programming
agora #1
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: COM Programming
Selam Şu (http://ddili.org/forum/thread/1382) konuda istediğimi aldım sonunda.

Şimdi bu kodları örnek olarak nasıl COM Programming standartlarına uygun hale getirebilirim?

Bu kodlari, C#'a eklemek istiyorum.

D ile rahatca halledebildigim seyi C# ile sacma sapan isim alanlarini ekleyerek hallediyoruz falan.

Sadece formu C#'a ait olan, geri kalan DLL'i falan D'ye ait olan bir program yapma hedefindeyim.

Ancak sanirim en onemli noktada cuvalladim :/

D'nin DLL'leri, .NET projelerine nasil eklenir ve kullanilir?

google'a dlang.org com programming, dllimport, d dll in c#, d code in c#, d code with c# gibi argumanlar yazdim ama bir nihai sonuca ulasamadim.

Fakat dlang forumunda bana com programmingden bahsedildi.

com programming'e baktim da windows'a bir nesne ekliyormus. Ben de kendi nesnemi ekleyerek projemde kullanma hedefindeyim.

Tabii her sey teoride oyle oncelikle com dll'leri farkli mi uretiliyor? normal dll elde edebiliyorum.

Ve nasil C# projeme, D kodunu dahil edecegim?

2 ayri konu oldu ama sanirim arama motorlarindan gelenler icin de uygun olacaktir diye dusundum.

Benim kodum:

import std.stdio;
import std.process;
import std.regex;
 
string extractSerial(string input) {
        auto m = input.match(`SerialNumber\s+(\S+)\s+`);
        if (m)
            return m.captures[1];
        else
            throw new Exception("Could not find serial number");
    }
 
void main()
{
    string a = "wmic bios get serialnumber";
    string b = "wmic os get serialnumber";
    
    
    auto result = executeShell(a);
    auto output = result.output;
    writeln(extractSerial(output));
    //system(a);
}

Bu kodu C# icinde kullanabilmem cok onemli geliyor bana. Belki de bir macera. Drag-Drop bir WinForm yontemi olsaydi C#'a bakmazdim bile. Ama hedefimi gerceklestirmek icin bir sekilde bunu o projeye dahil etmem sart.

Tesekkurler.
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ben COM programlamayı hiç bilmiyorum. Orada yanıtlayanlardan birisi öğrenecek bir sürü yeni kavram olduğunu söylemiş.

Gelen diğer öneriler şunlarmış:

  • C# C işlevlerini çağırabildiğine göre onun çağıracağı işlevlerini extern(C) olarak tanımla.

  • D ile bir DLL yaz ve C#'tan PInvoke ile çağır.

  • C# yalnızca form hazırlamak içinse onu boşven ve DWT'yi veya TkD'yi dene.

Benim bunların hiçbirisinde hiçbir deneyimim yok. :-/

Ali
agora #3
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
TkD ve DWT hakkinda benim de bir bilgim yok maalesef :/

DWT sanirim Eclipse'e plug-in olarak geliyor.

Java gelistirdigimden biliyorum GWT vardi bir isim benzerligi degilse eger.

C# evet sadece form icin.

TkD kullanimi kolay olsa yapabilirim belki ama benim mantigimi en cok zorlayan

pencere kurma islemleri falan.

C#'ta pencerenin yerini buyuklugunu istedigim component'in x,y koordinatini gorerek yapabiliyorum. Ama elle yazilan kodlarda bu rahatlik yok maalesef (Elle yazilan kodlar derken form'a bir component ekleyince C# bunun kodunu otomatik olusturuyor) D'de hepsini kurmak zorundayiz ve istedigim pencerenin, istedigim kismina, istedigim bileseni eklemek icin sanirim surekli bi deneme yanilma yapmam gerekiyor.

C# ile PInvoke nasil calisir hic bilmiyorum :/

Bir sekilde bunu projemde kullanmam gerekiyor. Bana kalsa ben hep konsol ekraninda calisirim ama son kullanici konsol ekranini pek sevmiyor :)
Mengu (Moderatör) #4
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
agora:
TkD ve DWT hakkinda benim de bir bilgim yok maalesef :/

DWT sanirim Eclipse'e plug-in olarak geliyor.

Java gelistirdigimden biliyorum GWT vardi bir isim benzerligi degilse eger.

C# evet sadece form icin.

TkD kullanimi kolay olsa yapabilirim belki ama benim mantigimi en cok zorlayan

pencere kurma islemleri falan.

C#'ta pencerenin yerini buyuklugunu istedigim component'in x,y koordinatini gorerek yapabiliyorum. Ama elle yazilan kodlarda bu rahatlik yok maalesef (Elle yazilan kodlar derken form'a bir component ekleyince C# bunun kodunu otomatik olusturuyor) D'de hepsini kurmak zorundayiz ve istedigim pencerenin, istedigim kismina, istedigim bileseni eklemek icin sanirim surekli bi deneme yanilma yapmam gerekiyor.

C# ile PInvoke nasil calisir hic bilmiyorum :/

Bir sekilde bunu projemde kullanmam gerekiyor. Bana kalsa ben hep konsol ekraninda calisirim ama son kullanici konsol ekranini pek sevmiyor :)

dwt overkill de tkd cok kolay. deneyebilirsin.
http://www.mengu.net - some kind of monster
agora #5
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
@Mengu hocam bir ornek verseniz bana lazim olan yapi mesela tab control

bir de bir textbox gibi bir sey vardi

kendi liste gibi sol ve sag gibi bolumleri falan vardi iste bunlari yapmak kolay ise deneyebilirim TkD'yi :/)
Avatar
huseyin #6
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #1
Bu kodu C# icinde kullanabilmem cok onemli geliyor bana. Belki de bir macera. Drag-Drop bir WinForm yontemi olsaydi C#'a bakmazdim bile.

Böyle bir yöntem var. Elbette Visual Studio kadar kaliteli olmasa da. DFL(D Forms Library) eğer windows üzerinde çalışıyorsan sana istemediğin kadar yardımcı olacaktır. Ben D'de 3 aydır görsel uygulama yazıyorum. Drag-Drop işini görmen için Entice Designer var. Var da var :D


Entice Designer
:http://www.dprogramming.com/entice.php
DFL(Benim bulduğum tek çalışan):https://github.com/Franklike/dfl
Huseyin
agora #7
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
@huseyin tesekkur ederim

C++'ta

TextBox1->Text = "Hello World"

yapiyorduk. D'de bunu nasil ayarliyoruz onun icin sanirim bir dokuman vardir. Tabletteyim ama PC'ye yarin sinavdan sonra gecebilecegim ancak o zaman bakarim :)
Avatar
huseyin #8
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
agora:
TextBox1->Text = "Hello World"

yapiyorduk. D'de bunu nasil ayarliyoruz onun icin sanirim bir dokuman vardir. Tabletteyim ama PC'ye yarin sinavdan sonra gecebilecegim ancak o zaman bakarim :)
Kastettiğin şey referans türünde birşey ise
http://www.dprogramming.com/dfl.php bu adresten tutorial ve gerekli açıklamalar var.
http://wiki.dprogramming.com/DflDoc/HomePage Bu adrestede ne kadar yeni bilmesem de referanslar var.
Ama hemen hemen hepsi çalışıyor :)
Huseyin
Mengu (Moderatör) #9
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #5
agora on 2014-06-20, 06:41:
@Mengu hocam bir ornek verseniz bana lazim olan yapi mesela tab control

bir de bir textbox gibi bir sey vardi

kendi liste gibi sol ve sag gibi bolumleri falan vardi iste bunlari yapmak kolay ise deneyebilirim TkD'yi :/)

oyle hazira konmak yok; https://github.com/nomad-software/tkd/tree/master/docs. :)
http://www.mengu.net - some kind of monster
agora #10
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
@huseyin tesekkur ederim ilk denememi yaptim ben dmd ile uyumlu sanirim bende yeni versiyon dmd'de calisiyor.

@Mengu hocam yapicam ama nasil desem insanlar gui istemeseler ne guzel olurdu :D
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 17:27:39 (UTC -08:00)