PDA

Tam Sürümünü Görmek İçin : Borlan C++ 6 Builder ilgili yardım


shurzan
21/08/2005, 03:55
Borlan C++ 6 Builder ile yeni çalışmaya başladım bilgisayarımda kurulu olan bu IDE ile ilgili iki konuda yardımınıza ihityacım var.


1. Borlan C++ 6 Builder ile derlemiş olduğum programlar bir başka bilgisayarda çalışmıyor sanırım bir ayarı vardı ama forumda ardım bulamadım nasıl yapmalıyım?

2. Borlan C++ 6 Builder ile derlediğim program üzerindeki butonlarda görsel stil yok XP de çalışan her programın tuşları görsel stil görümünde Borlan C++ 6 Builder ile derlemiş olduğum programlarda neden bu yok. ne yapmalıyım?

Şimdiden teşekkürler...


shurzan
21/08/2005, 14:15
Yardım edecek yok mu?

mr1yh1
21/08/2005, 22:35
1- bunun nedeni programının kullandığı bir dll nin diğer bilgisayarda olmaması..
builder de nasıl yapılıyor bilmiyorum ama
static bağlama seçeneğini seçersen dll ler programına dahil edilirler, programın boyutu büyür ama başka yerde de çalışır.
ya da dll leri programın ile birlikte diğer makinaya taşı..

2- maalesef hiçbir fikrim yok..

Euclides
21/08/2005, 22:46
2- windowsun yeni nesil common controlleri yüklersen tüm öğeler XP Style görünecektir.
Yüklemek için resource'a 1 öge eklemen lazım
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/CommCtls/Userex/cookbook.asp

sistem_memedim
22/08/2005, 18:43
Arkaşım Borland C++ Builder 6 ile bu sorunu iki şekilde çözersin.
1- InstallShield programı ile derleme yaparak ki bu programın borland C++ 6 için versiyonunu zor bulursun.
2- hazırladığın programın kullandığı dll' leri programın bulunduğu dizine kopyalayarak.
eğer veri tabanı kullanıyorsan programında bulunması gereken dll'ler ( bantam.dll - Bdertl60.bpl - borlndmm.dll - cc3260mt.dll - ceeurope.btl - charset.cvb - Dbrtl60.bpl - Dss60.bpl - idapi32.dll - idbat32.dll - idda3532.dll - idpdx32.dll - idqbe32.dll - idr20009.dll - idsql32.dll - Qrpt60.bpl - Rtl60.bpl - sqldb232.dll - sqldb2v5.dll - sqldb2v5.dll - Tee60.bpl - Vcl60.bpl - Vcldb60.bpl - Vclx60.bpl - Vclx60.bpl)
Arkadaşım SQL kullanmıyorsan sql ile başlıyanları programını bulundurduğun dizine koymana gerek yok. Ayrıca raporlama kullanmıyorsan Qrp ile başlıyanlarıda koymana gerek yok ve VeriTabanı kullanmıyorsan içinde "db" geçenleri de koymana gerek yok.
Bu arada sorunla alakası yok ama söyleme ihtiyacı hissettim. Eğer ilerde bu işi hobilikten çıkartıp para kazanmayı düşünürsen sertifika alman gerekecek. Üzgünüm ama sertifika için ve iş dünyasında geçerlilik için Microsoft C++/C# bilmek zorundasın. Dil aynı ama Borland'tan Microsofta döndüğünde epey uğraşman gerekecek. Yol yakınken Microsoft Visual Studio.Net e dönmeni ŞİDDET'le tavsiye ediyorum. Ayrıca C++' ı da bırak C#' a yönel. C# : C++' ı her yönüyle kapsar artı olarak net uyumu ve farklı platformlarda çalışma özelliği vardır. Yani C# geleceğin dilidir.
Saygılarımla.
Mehmet Turan

ceeyt
22/08/2005, 19:43
C# : C++' ı her yönüyle kapsar

Fazla iddiali.

C# bence daha cok delphi ve VB kullanimini azaltir. Kimsenin zamaninda C++ artik gelecegin dili birakin C yi diyebilDIGINI sanmiyorum ki hala kimse C++ varken neden C ile ugrasiyorsun gibi bisey demeye de kalkismaz.

Suanda C# gelecegin dili, C++ i her turlu kapsar demek de fazlaiyla iddiali. Teknik olarak da bir dilin baska birini kapsayabilmesi ...

assambly den baska bir dille yazilamayacak projelerde bulundum, ayni sekilde su anda ANSI C den baska biseyle yazilamayacak bir proje uzerinde de calisiyoruz.

asm < C < C++ < C# :)

Burdan C# kotudur anlami cikmasin,ben de kullaniyorum ve yeri geldiginde oldukca isimi goruyor.

yastasinane
22/08/2005, 20:06
oncelikle senin yazdigin programlarin diger bilgisayarlarda calismasi icin;

Builder'da:
Project > Options > Packages sekmesinden "Build with runtime packages" seceneginin tikini kaldir. bundan sonra tekrar derle programlarini. sorunun hallolur.

ikinci olarak xp stilinde gorunmesi icin ona gore bi derleme gerekir.
bunun icin programin "res" dosyasi deisik olmalidir. ekledigim dosyayi al, orjinal res dosyanla deistir. ondan sonra tekrar derle. bu da bitti.

hadi kolay gelsin...

shurzan
23/08/2005, 21:17
Öncelikle yardımı olan arkadaşlara teşekkür ederim!
Kaç gündür işlerimden dolayı foruma giremiyordum şimdi gördüm ve "yastasinane" dedikleri uyguladım ve oldu çok teşekküler arkadaşım.
Sevgili aradaşım "sistem_memedim" uyarıların gerçekten çok anlamlı ancak C ve C++ benim için gerçek manada kendime özgüvenimin anlamı bu dille tanıştığımdan beri Programlara, Program geliştiricilere ve Teknolojeye bakış açım olumlu yönde değişti Çünkü bende Ali hoca gibi Elektroniçi kökenliyim ve bu dili çok seviyorum. halen Ticari yönde bir program geliştirmiş değilim amacım hobi olarak çalışmak değil bu dille yapılabilecek her şeyi yapmak istiyorum ve ileriye dönük ticari programlar geliştirmek niyetindeyim.
Borland ile İhsan Karagüllenin Kitabıyla tanıştım kitabı 3 kere hatim etmeme rağmen hiç bir şey anlamadım (çok berbat anlatımş) diyebilirim sonra başa döndüm C ile başladım sonra C++ ile devam etmekteyim bu arada Ali hocaya çok teşekkürler çok başarılı biri ondan öğreneceğimiz çok şey var.
Şimdi İhsan kara güllenin kitabındaki uygulamaları deniyerek windows programları geliştirmek istiyorum Borlan için piyasada çok aramama rağmen Borlan için iyi bir kitap yok mecburan bu kitabı gene okuyacağım tek farkla artık C & C++ için verdiği kodları anlıyabilmekteyim.
Windows Programları geliştirmek için Başka seçeneğim yok VC++ için piyasada Türkçe kitap yok varsa lütfen önerirmisiniz.
Sertifika olayına gelince bana kazanım sağlıyacak olan şey bilgi birikimidir sertifika değil bilgi olmadan sertifika bir anlam taşıyacağını sanmıyorum, önce bilgi... daha öğreneceğim çok şey var çok.... Bu dil ile başarı sağlıyabileceksem bu bana yeter belki ileride olabilir ama şimdi değil.
Herkese teşekkürler...

burhanmt
24/08/2005, 00:45
Ayrıca C++' ı da bırak C#' a yönel. C# : C++' ı her yönüyle kapsar artı olarak net uyumu ve farklı platformlarda çalışma özelliği vardır. Yani C# geleceğin dili.

C# ile C++ arasında yine fark vardır. C# daha görsel ve component tabanlı bir dil; managed yapısında olmasına rağmen Microsoft kısmen pointer kullanımı ve low level işler için bu dile belli bir düzeyde izin vermektedir.

.NET ortamındaki dillerin hepsi(c# haric) managed(yönetilebilir) yapıdadır. Yani kafana göre her şey yapamayacaksındır. Meselâ pointer kullanımı yasaktır. salt assembly kod kullanımı yasaktır. .net framework'un sunduğu imkânlar ölçüsünde hareket edeceksindir.

Bunları söylememin sebebi, C/C++ dili her amaç için kullanılabilir olmasıdır. Native kod yazımında bu dil özgürdür. İstenilen en düşük seviyeye bu dil sayesinde inilebilir. Popülaritesi zaten buradan geliyor. Bu yüzden elektronikçi arkadaşlara C#'ın C/C++ dan daha kapsamlı olduğunu söylemek yanlış olur.

sistem_memedim
24/08/2005, 09:04
shurzan srkadaşımızın sorusundan çıkarttığım yorum onun "bu işi hobi olarak yaptığı" olduğu için ona C#' ı önerdim.
İkinci öneri sebebim ise bu işe başladığımda sertfika umurumda değilken ve C/C++ kullanıcısıyken yurt dışında çalışma planlarımdan dolayı sertifikaya ihtiyaç duymam ve bunun için C#.Net öğrenmek zorunda kalmam oldu.
Microsoftun MCSD sertifikası için C++' dilinde bir sınavı yok.Mecburen C# gerekiyor yada VB. Kardeşimizde ilerde böyle bir sıkıntıya düşmesin diye C#'a yönelmesini tavsiye ettim.
sistem programla ile ilgilendiğini ve sertifikaya ihtiyacı olmadığını düşünmedim doğrusu. Sistem programlama ile uğraşacaksa elbette C, C++ ve C#' ın farkı gündeme gelir.Hakklısınız.
Saygılarımla.

neolion
26/08/2005, 08:43
oncelikle senin yazdigin programlarin diger bilgisayarlarda calismasi icin;

Builder'da:
Project > Options > Packages sekmesinden "Build with runtime packages" seceneginin tikini kaldir. bundan sonra tekrar derle programlarini. sorunun hallolur.


Dedigin gibi sorun cozulmuyor. program gene baska bilgisayarda calismiyor, cesitli kutuphane dosyalari istemeye devam ediyor.

sistem_memedim
27/08/2005, 09:56
sana verdiğim dll ve diğer dosyaları bilgisayarından arattırıp onu programının bulunduğu dizine eklemeyi neden denemiyorsun?? neolion.

karamemed
27/08/2005, 10:35
Ne yani Borland'ın bir kurulum(setup) programı veya eklentisi yok mu?

sistem_memedim
27/08/2005, 10:40
Install Shield Express var ama bulamıyoruz piyasada.
Yani Borland C++ builder 6 için olanını.Ne rezillikler çektirdi bana bir bilsen hocam.

neolion
28/08/2005, 11:06
sana verdiğim dll ve diğer dosyaları bilgisayarından arattırıp onu programının bulunduğu dizine eklemeyi neden denemiyorsun?? neolion.

Bende dedigin gibi yapiyorum zaten ...

asoza
01/09/2005, 13:49
Arkadaşlar konuya geç katıldığım için özür dilerim.
Yukarıda anlatılanların tamamına yakını ya problemin çözümünü işkenceye çevirmeye yarar ya da tam çözüm değil. Biraz da konu dağılmış.
Problem sahibinden ricam ya problemi toparlayıp tekrar yazsın ya da bana özel mesaj ile bildirsin ben iyine buraya detaylı, basit ve en şık çözümü yazayım.
Yukarıda anlatılanlardan benimde kafam karıştı.
Bekliyorum.

shurzan
02/09/2005, 03:45
Sevgili asoza bu topic'i ben açtım konu şu
1. Borland C++ ile derlenmiş exe dosyalar bir başka Borland C++ Builder kurulu olmayan bilgisayarda çalıştırılamıyor, çalışmıyor.

Bunun için sevgili yastasinane açıklamayı yaptı.
oncelikle senin yazdigin programlarin diger bilgisayarlarda calismasi icin;
Builder'da:
Project > Options > Packages sekmesinden "Build with runtime packages" seceneginin tikini kaldir. bundan sonra tekrar derle programlarini. sorunun hallolur.
bu ayarı vermiş ancak bir ufak ayar daha yapmak gerekiyor o da;
Project > Options > Linker tabında olan "Create debug information" , "Use dynamic RTL" ve "Use debug libraries"da ki tikleri de kaldırmak gerekiyor.
Bu şekilde projeni derlediğinde exe boyutu 9 Kbyte dan 468 Kbyte çıkıyor ama program başka bilgisayarlarda sorunsuz çalışıyor.

2. Bu sorunada arkadaş gerekli cevabı vermiş sağolsun. Göndermiş olduğu dosyayı proje dizininde aynı proje adıyla değiştirerek koyduğunda ve programını derlediğinde XP stiline sahip oluyor.

Bu şekilde arkdaş yardımcı oldu eğer bizim bilmediğimiz başka bir yöntem biliyorsan bizimle paylaş zaten Bu Topic bu amaç için açıldı

asoza
02/09/2005, 15:26
Başlangıçta senin problemini okudum, ardından yastasinane'nin çözüm önerisini. "Use dynamic RTL" check inin kaldırılmasının eksikliğini farketmiştim. Ancak diğerleri gerekmiyor. Onu belirteyim. Yani "Create debug information" u işaretli bırakmanın konu ile alakası yok. Ayrıca "Use debug libraries" zaten işatersiz konumda varsayılandır.
Bu kısım için özetle project->options ta bulunan Packages tabındaki "built with runtime packages" işaretini kaldırmak ve Linker tabındaki "use dynamic rtl" işaretini kaldırmak programın kullandığı yerleşik kütüphane kaynaklarını de yine programa yükler.
ikinci konuda ki yöntem de tabiri uygunsa pek şık değil. Belki sonuç aynıdır. böylesi daha kestirmedir ama yapılan işlemi açıklamakta yöntem sahibini zorlayabilir.
Builder altında kullanılan standart bileşenlerin xp stili kaynakları kullanmasını sağlamak için yapılacak işlemleri anlatayım. Ancak anlatmadan önce bilinmesi gereken konu bu stilin sadece standart bileşenlerde kullanılabileceğidir. Standart bileşenin açılımında Builder in standart tabındaki bileşenler kastedilmemektedir. Builder tüm bileşenlerini kendisi sağlamıyor. Yine sistemden de kullanıyor. Örneğin Button sistemden gelirken, yani standart bileşenken BitButton vcl dir. Veya progressBar sitem kaynağıyken Gauge vcl dir. Updown sistem kaynağıyken spinbutton vcl dir. Gibi... İşin başında görsel etkiyi verecek bileşenler kullanmak daha avantajlı.
Öncelikle yastasinane nin verdiği res dosyasının içeriğini xml olarak hazırlayacağız.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.39"
processorArchitecture="X86"
name="PROGRAM_EXE_ADI.exe"
type="win32"
/>
<description>PROGRAM_ACIKLAMA</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>


Bu içeriği (yukarıdakini) manifest.xml adıyla program dizinine kaydediyoruz.


#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#endif
#ifndef RT_MANIFEST
#define RT_MANIFEST 24
#endif
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.xml"


Yukarıdaki içeriği de manifest.rc adıyla yine program dizinine kaydediyoruz.

Sonra programda "Add to project" veya shift+f11 kanalıyla manifest.rc dosyasını projeye dahil ediyoruz.
Derlendiğinde xp stili etin olacaktır. Dosya isimlendirmelerini içeriğide göz ardı etmeden farklı kullanabilirsiniz.
Sanıyorum ortalığı sistem_memedim in açıklamaları biraz karıştırmış.
Tabii onunda yardımcı olma çabasını kutlarım. Buna sözüm yok.
Eğer Builder e bu aralar başlamayı düşünen yeni birisi olsaydım, düşüncemden, sistem_memedim'in yazdıklarını okurken yarısında vazgeçmiştim.
Bir ekleme de setup programı ile ilgili yazışmalara atıfta bulunarak yapmak istiyorum.
Builder altında derlediğiniz her programı yine her setup yardımcısı program ile dağıtıma hazırlayabilirsiniz. installShield express ti sanırım, bu programı aramaya bulmaya harcadığınız zamana da yazık. Ki zaten sonuçta hiç güzel ve görsel bir setup olmuyor.
Benim önerim tarma.com adresinden tarma installeri kullanmanızdır. Rasladığım en mükemmel sıkıştırma gücüne sahip program. Upx kullanıyor çünkü.
Builder e özel değil herhangi bir program.
Eğer setup ile ilgili sorunlar yaşarsanız her zaman yardımcı olurum.
BDE kütüphanesini eklemekte sorun yaşarsanız yine yardımcı olurum. Ben o sıkıntıları yaşadım, çözdüm, kullanıyorum.

shurzan
03/09/2005, 05:49
Teşekkürler asoza.
BCB konusunda senin deneyimlerinden faydalanmak isteriz.
Bizimle paylaşacağın başk önemli noktalar varsa lütfen yaz.
Saygılar...

konyaliali
23/03/2006, 23:05
Selamlar arkadaşlar bu forumda yeniyim ve ne güzel ki insanlar bilgilerini paylaşıyorlar. google'da buradaki gibi bilgilerimizi paylaşabileceğimiz bir grup kurdum. hepinizi beklerim. adresler aşağıda

Turk-Gorsel-C-Programcilari@googlegroups.com
http://groups.google.com/group/Turk-Gorsel-C-Programcilari

Soruya gelince yazılan yazılımın diğer bilgisayarlarda çalışmamasının nedeni "borland builder'ın" yazılımın boyutunu azaltması için özel bir derleme(compile) yapması ki bu derlemede builder'ın yazılımla birlikte yüklediği birçok dosya görürsünüz bu tip derlemede bu dosyalar da yazılımla birlikte olmalıdır. ismini tam olarak bilmiyorum ama tam derleme diyeyim. bunu gerçekleştirirseniz. yazılım ile birlikte yüklenen birçok dosyanın yazılımla aynı klasörde olması zorunluluğundan kurtulursunuz ama yazılımın boyutu artar. "Builder1" sadece tam derleme yapar.

Şimdi gelelim bunu nasıl yapacağımıza "Project->Options" seçiyoruz. "Project Options" penceresi açılıyor seçeneklerden "Compiler'i" seçip "Release" düğmesine basıyoruz. linkeri seçip en alttaki "default" kutusunu seçiyoruz ve son olarak "Packages" başlığı altındaki "Build with runtime packages" kutusundaki şeçeneği kaldırıyoruz.

Bundan sonraki derlemelerde göreceksiniz ki yazılımın boyutu artmış fakat yazılımı kendi başına çalıştırabileceksiniz