こんにちは。
Borland C++でC++を始めて2日目なのですが、質問させてください。
メモ帳のエディタを使って簡単なプログラムを作成してコマンドプロンプトからコンパイルしています。
質問は、DLLとOCXを作成したいのですが、可能でしょうか? 作成手順がさっぱりわからなくて、参考になるサイト等を教えていただきたいです。
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCPad for Borland C++Compilerのダウンロード

CPad for Borland C++Compilerのダウンロードは
どこですればよいでしょうか?
もう、かなり前のソフトなので、
全然見つかりません。
よろしくお願いします。

Aベストアンサー

>全然見つかりません。

CPad で検索すればすぐに見つかりますよ。

「CPad(BCPad)」と「Borland C++Compiler」は別物ですよ。

CPad
http://cpad.michikusa.jp/

http://hp.vector.co.jp/authors/VA017148/pages/cpad.html

C++Builderのトライアル版
http://www.enri.go.jp/~fks442/K_MUSEN/bcc.htm
http://www.codegear.com/jp/downloads/free/cppbuilder

QBorland C++ Builderで簡単なC言語プログラムの作成・実行

Borland C++ Builderで簡単なCのプログラムを作り実行させるにはどうしたらよいですか?
DOS窓上でコンパイルするのではなく、Borland C++ Builderのメニューから行いたいのです。
一応、「ファイル→新規作成→その他→Cファイル」でCのファイルは作成できるのですが、このファイルを「プロジェクト→ユニットのコンパイル」でコンパイルすることができません。
Formオブジェクト(?)を作成しておくとコンパイルできます。
Formは特に必要ないので、FormなしでCのファイルだけをコンパイルしたいのです。

DOS窓でのコンパイル・実行はできます。

事情があってBorland C++ Builderを使わなくてはなりませんので、他のIDEはこの際全く解決になりません。

よろしくお願いします。

Aベストアンサー

プロジェクトを[コンソールアプリケーション]で作成して置く必要があります。

TurboC++での例。
画面は多少違いますがC++Builderでも同じです。
http://www.asahi-net.or.jp/~qb3k-kwsk/rpg/program/tool/tcpp/tcpp.html

QBorland C++Builder 6 Personal?

製品名 メディア 希望小売価格 ボーランドストア価格
Borland C++Builder 6 Personal CD-ROM \10,000 \10,000
Borland C++Builder 6 Professional CD-ROM \68,000 \61,200
Borland C++Builder 6 Enterprise CD-ROM \360,000 \324,000
※表示価格は、すべて税別です

Borland C++ version4
を使ってきましたがそろそろBuilderを使いたくなりました
しかし値段を見てみるとPersonalとProfessionalとEnterpriseでだいぶ違うのです
これだけ違うということは
Personalは使い物にならないのでしょうか?
RADなどはちゃんと使えるのでしょうか?
またProとEnterとの違いも気になります
これらの違いについて分かる範囲で教えてください

よろしくお願いします

Aベストアンサー

その価格差については、わかりませんが、
企業内のシステム構築を目的とした製品なので、一般的に会社で購入する場合が多いため、高めの価格設定だと思われます。
ま、この値段も20万円以下なら、稟議書がいらないうんぬんは、何年も前から言われてたことで、それなのにあえてこの値段は、ボーランドの戦略なのでしょうか。
>RADには支障がないのでしょうか?
とりあえず、ラベルとかテキストとか貼り付けて使用はできます。

ま、面倒であれば、Delphiのほうがラクですけどね。

QC++BuilderやDelphiでVC++用のDLLの作成

C++Builderの画面から新規作成からDLLウィザードを選ぶと、VC++スタイルのDLLを選択して作成できるようになっています。VC++用のDLLを作成出来るとは書かれていません。実際、VC++コンパイラからリンクを拒否されます。

また、VC++用のインポートライブラリをCOFF形式からBorland用のOMF形式に変換するユーティリティCOFF2OMF)は存在していますが、OMF形式をCOFF形式に変換する手法を見かけません。

変換方法を書いているWEBや雑誌記事とかを紹介してください。

Aベストアンサー

C++BuilderのDLLウィザードでの「VC++スタイル」はヘルプにあるようにエントリポイントが DLLMain になるだけです。
DLLはC++Builderで作成してもVisualC++で作成しても、どちらからも利用することができます。
MFC拡張など利用する側に対応が必要なDLLは別ですが。

C++BuilderとVisualC++ではインポートライブラリに互換性がありません。
C++Builder の場合は付属のツール implib.exe でDLLからインポートライブラリを生成できますが、VisualC++では簡単な方法はありません。

VisualC++での正攻法は LIB.EXE を使ってインポートライブラリを作成することですが、DEFファイルを書いてやらないといけません。
http://bme.t.u-tokyo.ac.jp/members/manabu/MKL_BCC/mkl_BCC.html
のdllからふるいCOFF形式のlibを作成するのところ。
http://www.sun-inet.or.jp/~yaneurao/dlang/Chapter-05.html#050800000000
がもう少し分かりやすいかもしれません。

私の場合は LoadLibrary(), GetProcAddress() で動的に呼び出すか、同じ定義の関数をエクスポートするダミーのDLLを作ってインポートライブラリを得ます。

参考URL:http://www.sun-inet.or.jp/~yaneurao/dlang/Chapter-05.html#050800000000

C++BuilderのDLLウィザードでの「VC++スタイル」はヘルプにあるようにエントリポイントが DLLMain になるだけです。
DLLはC++Builderで作成してもVisualC++で作成しても、どちらからも利用することができます。
MFC拡張など利用する側に対応が必要なDLLは別ですが。

C++BuilderとVisualC++ではインポートライブラリに互換性がありません。
C++Builder の場合は付属のツール implib.exe でDLLからインポートライブラリを生成できますが、VisualC++では簡単な方法はありません。

VisualC++での正攻法は LIB...続きを読む

Qvista向けのC++フリーソフト

vista対応のC++のフリーソフトを探しています。
何かいいソフトがあれば教えていただけませんか?
できればURLも添えていただければ助かります。
お願いします。

Aベストアンサー

C++のプログラミングツールが欲しい、と言うことでよろしいですか?
でしたら、Microsoft社のVisual C++ 2005 Express Editionが有ります。
http://www.microsoft.com/japan/msdn/vstudio/express/

システム要件に、きちんと「WindowsVista」の記載があります。

QCで作成したDLLからC++内で関数を利用する。

こんにちは。
Cで作成したDLLをC++で呼び出してその関数を使いたいのですが、リンクがうまくいきません。
externを使えばいいのですか??
具体的な使い方が分からないので、教えてください。

Aベストアンサー

#define DllImport__declspec( dllimport )
#pragma comment(lib, "DLL名")

#ifdef __cplusplus
extern "C" {
#endif
DllImport 関数();
...
#ifdef __cplusplus
}
#endif
のようにすれば、C++/C両方で使用可でしょう

QC++ の typedef の 使い方の質問

C++のtypedefの使い方の質問ですが、typedefは、別名の定義として、知られていますが。
以下のソースの意味がよく読み取れないです。windows プログラミングとC++
が分かるかたがいれば、以下のソースの意味を教えていただきたいです。

よろしくお願いします。
typedef BOOL (WINAPI *AddAccessAllowedAceFn)(
PACL pAcl,
DWORD dwAceRevision,
DWORD AceFlags,
DWORD AccessMask,
PSID pSid
);

Aベストアンサー

関数ポインタの別名定義です。
「関数ポインタ typedef」をキーワードにWeb検索してみてください。
丁寧に解説されているサイトが見つかるでしょう。

QC++/CLIで、アンマネージC++のDLLを使用する方法

こんにちは。
C++/CLIのプログラムで、アンマネージC++のDLLを使用したいと考えています。
ネット上をいろいろ調べたのですが、具体的な手段がわかりません。
見よう見まねで以下のようにサンプルを作成したのですが、コンパイルすら通る状況になりません。
かなり基本的な問題がありそうで申し訳ないのですが、下記の問題点を教えていただけないでしょうか。

また、参考になりそうなサイトなどありましたら教えていただけると大変助かります。

■アンマネージC++のDLL
VC++6.0で、以下のように、単にデバッグ文字列を書き出すだけのDLL関数を作成しました。
(このDLLが使用できることは他のVC++6.0プロジェクトで確認済みです)
/*-----Func.h-----*/
#ifndef __FUNC_H__
#define __FUNC_H__

AFX_EXT_CLASS void WINAPI ShowMessage();

#endif//__FUNC_H__

/*-----Func.cpp-----*/
#include "StdAfx.h"
#include "Func.h"
#include <stdio.h>

void WINAPI ShowMessage()
{
CString str = "This is The Message from DLL Func!\n";
OutputDebugString(str);
}

■C++/CLI でのDLL使用
Visual Studio2008にて、C++のCLRプロジェクトを作成して、以下のようにDLLを使用する準備を行いました。
1.ソリューションエクスプローラのヘッダフォルダに、Func.hを追加
2.プロジェクトのフォルダに、上記で作成したFuncのDLLとLIBファイルを置く。
3.プロジェクトの「プロパティ > C/C++ > プリプロセッサ > プリプロセッサの定義」に、"_AFXDLL"を追加
4.mainクラスのソースに以下を記述
/*----------*/
using namespace System;
#include "Func.h"
#using "ManagedDllApp.dll"

int main()
{
ShowMessage();
return 0;
}
/*----------*/

この状態でコンパイルすると、
「エラー3error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。d:\xxx\Func.h4Console
」等、Func.h周りで複数のエラーが出ます。
また、Func.hをインポートしないでコンパイルすると、
「エラー3fatal error C1113: #using が 'd:\xxx\manageddllapp.dll' で失敗しました。」と、Dllでエラーが出ます。

よろしくお願いいたします。

こんにちは。
C++/CLIのプログラムで、アンマネージC++のDLLを使用したいと考えています。
ネット上をいろいろ調べたのですが、具体的な手段がわかりません。
見よう見まねで以下のようにサンプルを作成したのですが、コンパイルすら通る状況になりません。
かなり基本的な問題がありそうで申し訳ないのですが、下記の問題点を教えていただけないでしょうか。

また、参考になりそうなサイトなどありましたら教えていただけると大変助かります。

■アンマネージC++のDLL
VC++6.0で、以下のように、単にデ...続きを読む

Aベストアンサー

 こんばんは。御礼頂きました。
 Func.hの中にインクルードし忘れがある様です。準備が出来たら、必ず「ソリューションのリビルド」をして下さい。
 以下は DLL->VC6.0Pro CLR->VC2005Pro で確認しています。

/*-----Func.h-----*/
#ifndef __FUNC_H__
#define __FUNC_H__

#include"afxver_.h"//此れと
#include"afxv_dll.h"//此れと
#include<windows.h>//此れをインクルード

AFX_EXT_CLASS void WINAPI ShowMessage();

#endif //__FUNC_H__

//以下はCLRアプリ側

/*-----stdafx.h-----*/
// stdafx.h : 標準のシステム インクルード ファイルのインクルード ファイル、または
// 参照回数が多く、かつあまり変更されない、プロジェクト専用のインクルード ファイル
// を記述します。
//
#pragma once

// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
#include"func.h"
#pragma comment(lib, "libの名前.lib")

/*-----clrconsole.cpp-----*/
// clrconsole.cpp : メイン プロジェクト ファイルです。

#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
::ShowMessage();
return 0;
}

 こんばんは。御礼頂きました。
 Func.hの中にインクルードし忘れがある様です。準備が出来たら、必ず「ソリューションのリビルド」をして下さい。
 以下は DLL->VC6.0Pro CLR->VC2005Pro で確認しています。

/*-----Func.h-----*/
#ifndef __FUNC_H__
#define __FUNC_H__

#include"afxver_.h"//此れと
#include"afxv_dll.h"//此れと
#include<windows.h>//此れをインクルード

AFX_EXT_CLASS void WINAPI ShowMessage();

#endif //__FUNC_H__

//以下はCLRアプリ側

/*-----stdafx.h-...続きを読む

QVisual C++ 6.0とVisual C++ 2005 についてですが・・・

Visual C++ 6.0でワークスペースと呼ばれていた物がVisual C++ 2005になるとソリューションと言う名前になったと聞きました。
また、Visual C++ 6.0で製作したファイルはVisual C++ 2005でも開けるけどVisual C++ 2005製作したファイルはVisual C++ 6.0では開けないと聞いたのですがVisual C++ 2005製作したファイルをVisual C++ 6.0でも開ける様に互換性を持たせる方法はありませんか?
学校と家で使っている環境が違うので互換性がもてれば両方で使えてとても便利になります。
御存知の方がいましたら御伝授お願いします。

Aベストアンサー

ソースファイルやヘッダファイル(拡張子CPP/C/H/HPPなど)はVisual C++ 6.0と2005で共用できるので、6.0用のプロジェクトファイル&ワークスペースと、2005用のプロジェクトファイル&ソリューションファイルを用意すれば両方の環境で開発を進めることができるでしょう。

但し、以下の点にご注意下さい。
・ソースファイルの追加や削除は両方のプロジェクトに対して行うこと。
・Visual C++6.0ではManaged C++が使えないのでManaged C++は使わないこと。
・MFCの仕様がだいぶ違うので、MFCも避けること。MFCを知り尽くしているのでしたらチャレンジはご自由に。
・C++コンパイラとしても若干仕様が違うので(for文内で定義された変数のスコープなど)、常に両方の環境でコンパイルできるか考えながら開発する必要があること。

Qborland C++ Builder 6でSPCommコンポーネントの作成方?

BCB6ビルダーでのSPCommコンポーネントというのを作成したいのですが、ビルダーに関してはほとんど無知ですので、ご支援お願いいたします。
SPCommコンポーネントはフリーのCOMで、ダウンロードすると
SPComm.pasともうひとつくらいファイルがダウンロードできます。
このSPComm.pasというものを使って、コンポーネントを作成しないと
いけないみたいのですが、方法がわかりません。
(汎用のコンポーネント自体の作り方がわからない)
よろしくお願いいたします。

SPCommコンポーネントを使ったPGのソースだけはあるのですが、SPCommコンポーネントを登録(作成?)していないのでそのプロジェクトを開くと、フォームに張り付いているはずのSPCommが消えてしまいます。

Aベストアンサー

まず

 メニュー→ファイル→全て閉じる

で編集中のプロジェクトを全て閉じてしまいます。
つぎに

 メニュー→開く

で作成したパッケージのファイルを開きます。
そこに、SPComm.pacとSPComm.dcrが登録されているのを確認してください。
もし登録されて無かったら改めてパッケージウィンドウから追加します。

あとはパッケージウィンドウのインストールをクリック
インストールが成功すればパレットにspcomのアイコンが登録されます。
また、spcomm.hppも自動生成され、spcommをフォームにポトリペタリしたときに自動でインクルードされるようになるはずです。

>コンポーネントのインストール方法などは書いておりません。飽くまでオープンソースというところでしょうか。

というかBCBの操作ですから。BCBのヘルプを見れば良いわけです。じつは。


人気Q&Aランキング

おすすめ情報