Forum: D Programlama Dili RSS
win32 api çağırımı
li-han #1
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: win32 api çağırımı
win32 api lerini kullanmaya çalışıyorum şu kodu yazdım:

import std.c.windows.windows;
import std.stdio;
import std.c.stdlib; 
 
extern(Windows): bool GetComputerName(LPTSTR lpBuffer, LPDWORD lpnSize);
    
void main()
{
    uint Genişlik = 255;
    
    char* BilgisayarAdı = cast(char*)malloc(Genişlik);
        
    if (GetComputerName(BilgisayarAdı, &Genişlik))
    {
        writeln(BilgisayarAdı);
    }
    
    free(BilgisayarAdı);
}

aldığım hata:

OPTLINK (R) for Win32  Release 8.00.1
Copyright (C) Digital Mars 1989-2004  All rights reserved.
deneme.obj(deneme) 
 Error 42: Symbol Undefined _GetComputerName@8
--- errorlevel 1

http://www.digitalmars.com/d/archives/digitalmars/D/15080.… bu başlıkta benim aldığım hatayı alan arkadaşa
"dmd sysmets1.d gdi32.lib" şeklinde derlemesi tavsiye edilmiş. ben derlemeye Kernel32.lib dahil ettim ancak gene aynı hatayı aldım. nerde hata yapıyorum acaba?
li-han #2
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
 :-)  çözdüm. GetComputerName yerine GetComputerNameA kullanınca çalıştı.

import std.c.windows.windows;
import std.stdio;
import std.c.stdlib;
import std.c.string; 
 
extern(Windows): bool GetComputerNameA(LPTSTR lpBuffer, LPDWORD lpnSize);
    
void main()
{
    uint Genişlik = 255;
    
    char* BilgisayarAdı = cast(char*)malloc(Genişlik);
    
    
    if (GetComputerNameA(BilgisayarAdı, &Genişlik))
    {
        writeln(BilgisayarAdı[0 .. strlen(BilgisayarAdı)]);
    }
    
    free(BilgisayarAdı);
}
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, 00:33:28 (UTC -08:00)