次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part129
http://echo.2ch.net/test/read.cgi/tech/1483940967/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1478440682/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part130 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ f37a-QmV0)
2017/03/31(金) 08:47:49.65ID:UkLjKqcm0771デフォルトの名無しさん (ワッチョイ 6e9a-YkGU)
2017/07/13(木) 21:27:47.04ID:lX8cJUTX0 そうだね
基礎から教えるつもりはない
応用、テクニック、実装方法、高速化、AVX512の使い方、キャッシュサイズによる最適化、HDDを使った場合の並べかえ方法、...
など具体的に聞いてくれれば
基礎から教えるつもりはない
応用、テクニック、実装方法、高速化、AVX512の使い方、キャッシュサイズによる最適化、HDDを使った場合の並べかえ方法、...
など具体的に聞いてくれれば
772デフォルトの名無しさん (ワッチョイ 469f-wtyE)
2017/07/13(木) 21:34:36.15ID:RqiuYpPc0 やりたいことはリアルタイムオシロですかね
ビジュアル的に表示出来ることから始めて
最終的にはArduinoで周波数検波器作りたいかも
ビジュアル的に表示出来ることから始めて
最終的にはArduinoで周波数検波器作りたいかも
773デフォルトの名無しさん (ワッチョイ 469f-wtyE)
2017/07/13(木) 21:38:11.93ID:RqiuYpPc0774デフォルトの名無しさん (ワッチョイ 321b-HOJV)
2017/07/14(金) 06:45:45.62ID:JUkrjA2t0 >>759
バレルシフタが何かわからんアホはすっこんでろ
バレルシフタが何かわからんアホはすっこんでろ
775デフォルトの名無しさん (ワッチョイ 6e9a-YkGU)
2017/07/14(金) 07:04:53.46ID:dCevqkg20 >>758の真ん中のブロック、意味がわかるなら解説よろしく
776デフォルトの名無しさん (スップ Sdc4-aKa0)
2017/07/15(土) 13:45:59.81ID:fnbVxk0dd VBから読み出せるdllを作るときの注意点ってある??
777デフォルトの名無しさん (ワッチョイ f6e4-PXrN)
2017/07/15(土) 14:17:18.00ID:u0zSb1i50 メモリ管理
778デフォルトの名無しさん (スプッッ Sd9e-y/ao)
2017/07/15(土) 15:27:55.38ID:GMW24mlhd779デフォルトの名無しさん (スップ Sdc4-aKa0)
2017/07/15(土) 17:14:07.14ID:fnbVxk0dd >>778
vb6.0っていう化石
vb6.0っていう化石
780デフォルトの名無しさん (スプッッ Sd9e-y/ao)
2017/07/15(土) 17:26:21.05ID:GMW24mlhd781デフォルトの名無しさん (スプッッ Sd9e-y/ao)
2017/07/15(土) 17:33:23.30ID:GMW24mlhd782デフォルトの名無しさん (ワッチョイ 0aa6-1m9k)
2017/07/16(日) 16:02:40.33ID:o1PqrRM30783デフォルトの名無しさん (ワッチョイ 955a-qt4g)
2017/07/16(日) 16:21:43.57ID:CxpOV7IS0 const が付いてるからじゃね
784デフォルトの名無しさん (ワッチョイ 0aa6-1m9k)
2017/07/16(日) 17:06:50.01ID:o1PqrRM30785デフォルトの名無しさん (ワッチョイ 955a-qt4g)
2017/07/16(日) 18:31:12.78ID:CxpOV7IS0 struct A<T (&)[4]> は、
struct A<const T &> の特殊化じゃないんじゃね?
struct A<const T &> の特殊化じゃないんじゃね?
786デフォルトの名無しさん (ワッチョイ f146-I8+U)
2017/07/16(日) 18:46:15.15ID:TI5o59vg0 テンプレート引数型を明示してるのに、その型に一意にマッチする定義がないからでしょ。
どっちが近いかを決定するような優先順位の規定がないので ambiguous になる。
compiler からしてみたら仕様がなければ勝手に判断できないって話。
どっちが近いかを決定するような優先順位の規定がないので ambiguous になる。
compiler からしてみたら仕様がなければ勝手に判断できないって話。
787片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd70-qcL/)
2017/07/16(日) 18:49:24.15ID:8ivnKhmqd int (&)[4]の左側にconst付ける意味あんの?
788デフォルトの名無しさん (オッペケ Srea-1m9k)
2017/07/16(日) 19:11:25.11ID:0XlWr73/r >どっちが近いかを決定するような優先順位の規定がない
何故か規格を読まない奴ほど自信満々に嘘をつく法則
何故か規格を読まない奴ほど自信満々に嘘をつく法則
789デフォルトの名無しさん (オッペケ Srea-1m9k)
2017/07/16(日) 19:21:41.99ID:0XlWr73/r 規格の8.3.4p1により配列のconstは要素のconstと等価なので、A<int const (&)[4]>はA<T const &>に適合する
790デフォルトの名無しさん (ワッチョイ f6e4-PXrN)
2017/07/16(日) 19:35:17.35ID:F/PpVxkG0 C++14まででいいので全文日本語の規格書くれよ
791デフォルトの名無しさん (ワッチョイ 0aa6-1m9k)
2017/07/16(日) 20:01:11.52ID:o1PqrRM30 優先順位ルールよくわからんっす
792デフォルトの名無しさん (スプッッ Sd2a-aKa0)
2017/07/16(日) 20:21:10.26ID:5frVCgipd793デフォルトの名無しさん (ワッチョイ f6e4-PXrN)
2017/07/16(日) 20:26:00.20ID:F/PpVxkG0 古代言語の解読は自己責任だ
細かいこと考えたくなければ標準入出力で繋げばいい
細かいこと考えたくなければ標準入出力で繋げばいい
795デフォルトの名無しさん (ワッチョイ f146-I8+U)
2017/07/16(日) 21:06:56.01ID:TI5o59vg0 >>789
ありがとう、探してくれて。
ありがとう、探してくれて。
796デフォルトの名無しさん (オッペケ Sr10-1m9k)
2017/07/16(日) 21:31:30.43ID:Z5uaiz2pr テンプレートの部分順序は規格1400ページの中で恐らく最も難解
順序はテンプレート実引数と関係無く仮引数同士で判定され、直感的には
P (&)[4] ← struct X {} const & × Pの導出不可
P const & ← struct X {} (&)[4] × Pの導出不可
によりambiguous
規格の説明は14.5.6.2, 14.8.2.4, 14.8.2.5
順序はテンプレート実引数と関係無く仮引数同士で判定され、直感的には
P (&)[4] ← struct X {} const & × Pの導出不可
P const & ← struct X {} (&)[4] × Pの導出不可
によりambiguous
規格の説明は14.5.6.2, 14.8.2.4, 14.8.2.5
797デフォルトの名無しさん (ワッチョイ 1a42-Z+b3)
2017/07/17(月) 06:43:20.69ID:WTwWKmZ80 >>673
プロパティってのはオブジェクトの状態の抽象化
例えば、コンテナのlistのsizeはコンテナとしての状態
sizeは要素数に対して定数時間で取得可能って条件があるからメンバ変数としてsizeを持ってる
そうでなければ線形時間になってしまう
vectorは大抵の場合、確保したメモリの始端と終端、要素の終端を表すポインタをメンバ変数に持つけど
ポインタ演算で定数時間で求められるから、sizeのメンバ変数は持っていない
emptyも状態、listもvectorも空を表すbool型のメンバ変数は持たないけど
コンテナとしてemptyかどうかの状態を取得できるわけで、メンバ変数と対とはなっていない
つまり、クラス設計上必要なオブジェクトとしての状態のget/setが目的であって
外部からメンバ変数にアクセスするための機能ではないよ(単にそれも出来るよってだけ)
>>699
charのポインタを4バイト幅の符号無し整数型にキャスト
その毎にビット演算、ループ数も32回で済む
エンディアンは気にしないw
プロパティってのはオブジェクトの状態の抽象化
例えば、コンテナのlistのsizeはコンテナとしての状態
sizeは要素数に対して定数時間で取得可能って条件があるからメンバ変数としてsizeを持ってる
そうでなければ線形時間になってしまう
vectorは大抵の場合、確保したメモリの始端と終端、要素の終端を表すポインタをメンバ変数に持つけど
ポインタ演算で定数時間で求められるから、sizeのメンバ変数は持っていない
emptyも状態、listもvectorも空を表すbool型のメンバ変数は持たないけど
コンテナとしてemptyかどうかの状態を取得できるわけで、メンバ変数と対とはなっていない
つまり、クラス設計上必要なオブジェクトとしての状態のget/setが目的であって
外部からメンバ変数にアクセスするための機能ではないよ(単にそれも出来るよってだけ)
>>699
charのポインタを4バイト幅の符号無し整数型にキャスト
その毎にビット演算、ループ数も32回で済む
エンディアンは気にしないw
798デフォルトの名無しさん (オッペケ Sr10-1m9k)
2017/07/17(月) 09:28:01.08ID:ESb998SRr >エンディアンは気にしないw
物は言い様で、本当は触ったことが無いのであった
AIXやSPARC使いに「インテル能乙」と揶揄されても仕方ない
物は言い様で、本当は触ったことが無いのであった
AIXやSPARC使いに「インテル能乙」と揶揄されても仕方ない
799デフォルトの名無しさん (ワッチョイ 1a42-Z+b3)
2017/07/17(月) 09:43:52.37ID:WTwWKmZ80800デフォルトの名無しさん (ワッチョイ 3eaf-iUs+)
2017/07/17(月) 09:52:45.96ID:NM7AtMtK0 エクスプレッションテンプレートを使った二項演算子のオーバーロードって
・グローバル空間全体
・特定の名前空間で定義して、使う部分ではその名前空間を指定
のどちらかになるということになりますか?
つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?
・グローバル空間全体
・特定の名前空間で定義して、使う部分ではその名前空間を指定
のどちらかになるということになりますか?
つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?
801デフォルトの名無しさん (オッペケ Sr10-1m9k)
2017/07/17(月) 22:32:17.08ID:ESb998SRr 通常のクラスの例であるstd::complex<>は二項演算子を使う部分で名前空間など指定しなくても良いし
そのオーバーロード関数はクラスではなくstd名前空間に限定している
式テンプレートでそれ以上のことが必要なのだろうか
そのオーバーロード関数はクラスではなくstd名前空間に限定している
式テンプレートでそれ以上のことが必要なのだろうか
802デフォルトの名無しさん (ワッチョイ 7011-MRQN)
2017/07/18(火) 00:26:51.30ID:2CukONSS0 名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義するか、
ライブラリが提供する型以外を許容しないなら、演算子を各クラス内に定義するだけでいい
ETと協調しうるあらゆる型も許容するために
template <typename T, typename U>
fugaexpression<T, U, ...> operator +(T t, U u);
と書きたいのなら、演算子を名前空間内に書くとか
enable_ifで条件に合わないものを弾くなりしないといけない
ライブラリが提供する型以外を許容しないなら、演算子を各クラス内に定義するだけでいい
ETと協調しうるあらゆる型も許容するために
template <typename T, typename U>
fugaexpression<T, U, ...> operator +(T t, U u);
と書きたいのなら、演算子を名前空間内に書くとか
enable_ifで条件に合わないものを弾くなりしないといけない
803デフォルトの名無しさん (ワッチョイ 7011-MRQN)
2017/07/18(火) 12:37:46.49ID:2CukONSS0 訂正
ETだから参照でないといかんね
operator +(T &&t, U &&u)
ETだから参照でないといかんね
operator +(T &&t, U &&u)
804デフォルトの名無しさん (ワッチョイ 3eaf-iUs+)
2017/07/18(火) 12:44:00.00ID:VOd4+Wz60 なんとなくわかりました
やってみます
やってみます
805デフォルトの名無しさん (ブーイモ MMfd-I8+U)
2017/07/18(火) 12:53:11.11ID:CTdksPCiM 式テンプレート作るのと、右辺値参照モノをしっかり作り込むのとどちらが良さげ?
806デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/18(火) 14:06:03.25ID:C2L8wOjPd 上でVB6.0について質問してるものだけどさらに重ねて質問させてください
VB6.0→C++に通信してる箇所が存在していてそこがstring→char※になってる
これって文字化けしないの??
VB6.0→C++に通信してる箇所が存在していてそこがstring→char※になってる
これって文字化けしないの??
807デフォルトの名無しさん (スップ Sd02-y/ao)
2017/07/18(火) 15:57:42.98ID:LmZYlO3Ud808デフォルトの名無しさん (アウアウエー Sa66-C5HA)
2017/07/19(水) 07:57:29.52ID:4WYjcaP8a >>806
コード内で文字列生成して表示したらエンコードが違って文字化けとかあるけど、外部から文字列受け取ってただ表示するだけならエンコードとか関係ないから問題は無い。
(ただのバイト列)
外部から文字列受け取ってそれを加工するとかだと問題ある時はあるが。
コード内で文字列生成して表示したらエンコードが違って文字化けとかあるけど、外部から文字列受け取ってただ表示するだけならエンコードとか関係ないから問題は無い。
(ただのバイト列)
外部から文字列受け取ってそれを加工するとかだと問題ある時はあるが。
809デフォルトの名無しさん (ワッチョイ 3eaf-iUs+)
2017/07/19(水) 14:22:33.44ID:cdBaS5I50810デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 20:36:51.87ID:ogeQAtV7d >>808
サンクス!!!
いじらないことにした
明示的なdllの呼び出しも出来なくて震えてます
Getprocaddressが出来ずに進まないです
何か間違っている箇所があれば教えてほしいです
dllは同階層に配置してます
あとdll側の宣言でWINAPIがあるパターンとないパターンを見るのだけども
必要ないってことはあり得るのでしょうか
dll側
_delspec(dllimport) int WINAPI AAA(int,int){
return 0;
}
呼び出し側
HINSTANCE hDLL; int (*func)(int,int);
if ((hDLL = LoadLibrary("AAA.dll")) == NULL)
printf("LoadLibrary is failed.\n");
else { if ((func = (int (*)(int,int))
GetProcAddress(hDLL, "AAA")) == NULL) printf("GetProcAddress is failed.\n");
else printf("main %d\n", func(1,1));
FreeLibrary(hDLL);
}
サンクス!!!
いじらないことにした
明示的なdllの呼び出しも出来なくて震えてます
Getprocaddressが出来ずに進まないです
何か間違っている箇所があれば教えてほしいです
dllは同階層に配置してます
あとdll側の宣言でWINAPIがあるパターンとないパターンを見るのだけども
必要ないってことはあり得るのでしょうか
dll側
_delspec(dllimport) int WINAPI AAA(int,int){
return 0;
}
呼び出し側
HINSTANCE hDLL; int (*func)(int,int);
if ((hDLL = LoadLibrary("AAA.dll")) == NULL)
printf("LoadLibrary is failed.\n");
else { if ((func = (int (*)(int,int))
GetProcAddress(hDLL, "AAA")) == NULL) printf("GetProcAddress is failed.\n");
else printf("main %d\n", func(1,1));
FreeLibrary(hDLL);
}
811片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 20:49:13.06ID:MaD+cEa1d >>810
importとexportを間違ってるよ。
importとexportを間違ってるよ。
812デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 21:54:41.55ID:ogeQAtV7d813片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:02:10.86ID:MaD+cEa1d まずは、出来たdllをダンプしてみな。関数型にはWINAPIが必要だよ。
814デフォルトの名無しさん (オッペケ Srea-hJ3a)
2017/07/19(水) 22:06:19.96ID:QocMLB2Ar815片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:06:40.85ID:MaD+cEa1d こういう場合は関数ポインタ型をtypedefしたら楽だよ。
816デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 22:10:20.05ID:ogeQAtV7d817片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:12:49.52ID:MaD+cEa1d typedef int (WINAPI *MYFUNC)(int, int);
818デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 22:13:35.01ID:ogeQAtV7d __stdcallがないってことか!!!!!
819片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:14:01.35ID:MaD+cEa1d dumpbinというダンプツールがあるから、それを使ってdllの情報をダンプする。
820片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:16:16.73ID:MaD+cEa1d どうやってdllを作った? 初心者だから作り方間違ってる可能性がある。
821デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 22:18:12.53ID:ogeQAtV7d >>820
ダンプするってのがほぼほぼ理解できてない
visualstudioでdll選んで空のプロジェクトを選んだ
それでcpp追加してその内容にさっきの構文とおまじないのwinmainを書いてビルド
ダンプするってのがほぼほぼ理解できてない
visualstudioでdll選んで空のプロジェクトを選んだ
それでcpp追加してその内容にさっきの構文とおまじないのwinmainを書いてビルド
822片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:21:21.65ID:MaD+cEa1d >>821
dllの場合はWinMain要らない。ダンプは専用のコマンドプロンプトで行う。ってことは、コマンドプロンプトの使い方も勉強しないといけない。
dllの場合はWinMain要らない。ダンプは専用のコマンドプロンプトで行う。ってことは、コマンドプロンプトの使い方も勉強しないといけない。
823片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:22:37.56ID:MaD+cEa1d DLLの場合はDllMainだね。
824デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 22:25:28.38ID:ogeQAtV7d825片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:25:41.24ID:MaD+cEa1d あっ、それからC++からC言語の関数を定義・参照するにはextern "C"を付けないといけない。
826片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:31:08.38ID:MaD+cEa1d C++関数のシンボル名は「mangling」によって変な名前になり、コンパイラーによって違うから(標準化されていない)、DLLでは使いづらいので、C言語関数にすることが多い。
827片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:39:22.35ID:MaD+cEa1d DLL内部の輸出関数にextern "C"を付けてC言語関数にする。
関数ポインター型をtypedefする。
DLLをダンプして関数シンボル名を確認する。
関数ポインター型をtypedefする。
DLLをダンプして関数シンボル名を確認する。
828デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 22:41:38.53ID:ogeQAtV7d >>825
C言語の関数を定義参照するってのは.cファイルが出てきたときの話よね?
C言語の関数を定義参照するってのは.cファイルが出てきたときの話よね?
829片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:43:26.89ID:MaD+cEa1d コンパイラーによって違うが、C言語関数が__cdeclのときは、そのシンボル名は先頭に下線が付き、__stdcallのときは関数名そのままだったかと。
830片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:46:12.04ID:MaD+cEa1d >>828
C++でDLL関数を参照するときは、DLL関数がC言語関数でないと、シンボル名がややこしくなって、GetProcAddressが難しくなるよ。ダンプすればシンボル名が確認できる。
C++でDLL関数を参照するときは、DLL関数がC言語関数でないと、シンボル名がややこしくなって、GetProcAddressが難しくなるよ。ダンプすればシンボル名が確認できる。
831デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 22:51:10.86ID:ogeQAtV7d832片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:54:29.77ID:MaD+cEa1d スタートメニューのVSの項目に、「なんちゃらコマンドプロンプト」というのがあるはずだ。
ソイツを起動すると黒い画面が出て来て、キーボードで「CD」コマンドで対象のフォルダに移動。
dumpbinに適当なコマンドライン引数を付けてEnter。
ソイツを起動すると黒い画面が出て来て、キーボードで「CD」コマンドで対象のフォルダに移動。
dumpbinに適当なコマンドライン引数を付けてEnter。
833片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:56:32.59ID:MaD+cEa1d >>831
DllMainにも__stdcallが必要。
DllMainにも__stdcallが必要。
834片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 22:59:03.92ID:MaD+cEa1d >>831
関数の引数と戻り値がC言語関数に見えれば中身C++でもOkay。
関数の引数と戻り値がC言語関数に見えれば中身C++でもOkay。
835デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 22:59:52.02ID:ogeQAtV7d836片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:00:31.80ID:MaD+cEa1d __stdcallやWINAPIなどを付けなければ、デフォルトで__cdeclになる。
837片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:02:59.40ID:MaD+cEa1d コンパイラーによってはデフォルトの呼び出し規約を変更できるかも知れない。
838片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:07:11.36ID:MaD+cEa1d 複数の関数を、extern "C" { ... } で囲ってもいいし、関数の直前にextern "C"を付けてもいい。
839デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 23:10:05.85ID:ogeQAtV7d >>838
個々につけた方が明示的で良いように思ったので個々でつけることにします
dll難しい....
linuxのsoファイル作成のソースコードと、winのdll作成のコードを共通化しようとしたら
defineで切るしかない??
個々につけた方が明示的で良いように思ったので個々でつけることにします
dll難しい....
linuxのsoファイル作成のソースコードと、winのdll作成のコードを共通化しようとしたら
defineで切るしかない??
840デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 23:14:11.62ID:ogeQAtV7d 質問ばかりで申し訳ないけどもヘッダファイルって作られないのかな?
dll側で定義した関数を公開するときにインポートライブラリで読み込ませるならばヘッダファイル必要になると思うのだけど
それは自身で作成することになる??
dll側で定義した関数を公開するときにインポートライブラリで読み込ませるならばヘッダファイル必要になると思うのだけど
それは自身で作成することになる??
841デフォルトの名無しさん (ワッチョイ f6e4-PXrN)
2017/07/19(水) 23:16:07.85ID:rRbujBCW0 >>839
Boost.DLLを使う
Boost.DLLを使う
842片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:17:50.12ID:MaD+cEa1d843片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:25:33.39ID:MaD+cEa1d WinMainやDllMainなど以外で自分で作った関数については、WINAPIよりもAPIENTRYを使うのがマナー。
844デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 23:28:24.94ID:ogeQAtV7d845デフォルトの名無しさん (ワッチョイ 96ea-zKZC)
2017/07/19(水) 23:30:05.93ID:K+rHLYmS0 もう面倒だからC#で作れよ
846片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:32:25.59ID:MaD+cEa1d <windows.h>の中身を覗いてみると、Win32APIの流儀が見えてくる。時間泥棒かも知れないが、それが面白い。
847片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:35:11.33ID:MaD+cEa1d Boostという準標準ライブラリ群があって、Boost.DLLはその一部。APIENTRYマクロはWINAPIマクロの別名。
848片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:39:27.90ID:MaD+cEa1d 面倒なのが嫌なら最初からC#使え。C++は素人が来るところではない。
849デフォルトの名無しさん (スプッッ Sd9e-aKa0)
2017/07/19(水) 23:46:25.94ID:ogeQAtV7d >>845
開発でC++が必須なんだ..
開発でC++が必須なんだ..
850片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/)
2017/07/19(水) 23:50:31.02ID:MaD+cEa1d で、問題は解決したか?
851デフォルトの名無しさん (ワッチョイ f6e4-PXrN)
2017/07/19(水) 23:52:51.09ID:rRbujBCW0 それはいいけどググればすぐ解決する程度の問題をわざわざ人に聞くべきではない
852デフォルトの名無しさん (ワッチョイ 274b-FPZE)
2017/07/20(木) 00:02:01.05ID:a17NgPNI0 ググれってよく見るけど、最近はググった結果がQiitaとかで余計わからなくなる人いそう
853デフォルトの名無しさん (スプッッ Sd7f-7lrd)
2017/07/20(木) 00:26:00.45ID:68uSpz6dd854デフォルトの名無しさん (ワッチョイ 47e4-OcZC)
2017/07/20(木) 00:35:16.57ID:am65me5o0 色々は無いでしょ
855デフォルトの名無しさん (ワッチョイ dff0-E/h9)
2017/07/20(木) 11:41:47.84ID:aRd+na0X0856デフォルトの名無しさん (オッペケ Sr1b-3YgS)
2017/07/20(木) 19:54:56.95ID:z9hoJ4whr >>853
ひょっとしてまだやってるのか?
方法1:
1. 型をint (__stdcall *)(int,int) にする
2. GetProcAddressに渡す名前を"?AAA@@YGHHH@Z"の様な名前にする
この名前はVisual Studio付属のコマンドで
「dumpbin.exe /exports unko.dll」にて確認
32ビットと64ビットでは名前が異なるので注意
方法2:
1. 型をint (__stdcall *)(int,int) にする
2. テキストファイルunko.defを作り
EXPORTS
(TAB)AAA
と書いてプロジェクトのプロパティのリンク設定でこのファイルをモジュール定義ファイルに指定する
ひょっとしてまだやってるのか?
方法1:
1. 型をint (__stdcall *)(int,int) にする
2. GetProcAddressに渡す名前を"?AAA@@YGHHH@Z"の様な名前にする
この名前はVisual Studio付属のコマンドで
「dumpbin.exe /exports unko.dll」にて確認
32ビットと64ビットでは名前が異なるので注意
方法2:
1. 型をint (__stdcall *)(int,int) にする
2. テキストファイルunko.defを作り
EXPORTS
(TAB)AAA
と書いてプロジェクトのプロパティのリンク設定でこのファイルをモジュール定義ファイルに指定する
857デフォルトの名無しさん (ササクッテロリ Sp1b-Iuq2)
2017/07/20(木) 23:54:34.71ID:8WEeg4Ctp winapiの流儀とか見ていて吐き気を催す
858デフォルトの名無しさん (ワッチョイ 47e4-OcZC)
2017/07/21(金) 00:44:29.75ID:OjZ8KrLm0 WINAPIのtypedefされた型を元のプリミティブ型に書き直すのが趣味です
859デフォルトの名無しさん (ワッチョイ dfaa-E/h9)
2017/07/21(金) 00:47:34.17ID:zOHs/jgU0 F12を叩きたいのか
860デフォルトの名無しさん (ワッチョイ df9f-2Ge4)
2017/07/21(金) 04:01:38.56ID:7GF1vWDt0 extern "C" __declspec(dllexport) int __stdcall func(int,int){}
"?AAA@@YGHHH@Z"のような吐き気催す引数無くした名前だけ出力したい場合は extern "C" を前に付けると解決
"?AAA@@YGHHH@Z"のような吐き気催す引数無くした名前だけ出力したい場合は extern "C" を前に付けると解決
861デフォルトの名無しさん (ワッチョイ a7b4-jxVo)
2017/07/21(金) 07:00:36.74ID:h5hvtEqn0 http://qiita.com/YukiMiyatake/items/9c099041eab9ee8b349d
uniqu_ptrに頼って生歩使わないとか、
そんなだったらはじめからC++なんか使うな
アホはC++使うなって見本
>リソースを生で使うのは アンチデザパタです!
それがどーした。パターンでしか考えられないお前
uniqu_ptrに頼って生歩使わないとか、
そんなだったらはじめからC++なんか使うな
アホはC++使うなって見本
>リソースを生で使うのは アンチデザパタです!
それがどーした。パターンでしか考えられないお前
862デフォルトの名無しさん (ワッチョイ a709-leQM)
2017/07/21(金) 07:42:02.40ID:7e+pM3K/0 えらいねー。
863デフォルトの名無しさん (スッップ Sdff-AsiQ)
2017/07/21(金) 07:57:26.95ID:SclDYwDCd 所有権を持った人が自分でnew deleteするってのは確かにもうあり得ないでいいだろう。
それを「生ポインタを使わない」と表現するのは言い過ぎというか誤解を生む。
それを「生ポインタを使わない」と表現するのは言い過ぎというか誤解を生む。
864デフォルトの名無しさん (ワッチョイ 274b-G5Pk)
2017/07/21(金) 08:46:52.32ID:2RjE57oB0 生保使う場面ってどんな時だろ?
865デフォルトの名無しさん (ドコグロ MM9f-tIP3)
2017/07/21(金) 08:47:22.86ID:fYLttpYeM delete禁止構文欲しいぜ
866デフォルトの名無しさん (ワッチョイ a709-leQM)
2017/07/21(金) 08:49:46.05ID:7e+pM3K/0 生ぽは、その場で文字列生成して関数に食わせる以外は参照だなぁ。
867デフォルトの名無しさん (ドコグロ MM9f-tIP3)
2017/07/21(金) 08:54:06.32ID:fYLttpYeM868デフォルトの名無しさん (スッップ Sdff-AsiQ)
2017/07/21(金) 10:34:18.10ID:SclDYwDCd 自分でnew deleteするなんて発想が無くなってきたから別にポインタ渡しに違和感ないけどな
869デフォルトの名無しさん (ワッチョイ a709-leQM)
2017/07/21(金) 11:14:02.61ID:7e+pM3K/0 設計的にどうなんだろう。
870デフォルトの名無しさん (スッップ Sdff-AsiQ)
2017/07/21(金) 11:40:31.31ID:SclDYwDCd 生ポインタは誰が資源管理するのか曖昧になるからよくない、って主張は昔はあったと思う。
いまソースコードを検索してnew もdeleteも見当たらないという状況なら、そんなのはもう
忘れていいと思う。
いまソースコードを検索してnew もdeleteも見当たらないという状況なら、そんなのはもう
忘れていいと思う。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】Jリーグ観客動員が歴代最多を更新 初の「1300万人超え」達成…平均入場者数も史上最高に [尺アジ★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【速報】嵐、『紅白歌合戦』出場しない意向 NHKからオファーも首を縦に振らず… 歌唱パフォーマンスのブランクがネック [冬月記者★]
- 山里亮太、フィリピンに子ども食堂を建設 「偽善者」「日本の子どもを助けるべき」の声があっても活動を続ける理由 [Anonymous★]
- 【DAZN/ABEMA】ブンデスリーガ・DFBポカール★7
- 【U-NEXT】プレミアリーグ総合 ★45
- 【U-NEXT】プレミアリーグ総合 ★44
- こいせん 全レス転載禁止
- とらせん IP付き
- 【D専】
- 安倍晋三の学歴詐称は許されたのに、伊藤市長は許されなかった理由って何? [603416639]
- 【朗報】イーロン・マスク「AIとロボットで誰も働かなくて良くなる。全員ニートで金銭も税金もないパラダイスみてぇな国を作りてえ」 [347751896]
- 冷え性すぎて寝れない😭助けて!
- 【悲報】米山隆一と室井佑月、ガチで離婚しそうwwwwwwwwwwwwwwwwwwww [802034645]
- ( ・᷄ὢ・᷅ )今はフリーです
- 女子中学生、男子に初めてクリをイジられてすぐにイッてしまうwwwwwwwwwwwwwwwwwwww
