- 1 名前:デフォルトの名無しさん(ワッチョイ f37a-QmV0) mailto:sage [2017/03/31(金) 08:47:49.65 ID:UkLjKqcm0.net]
- 次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part129 echo.2ch.net/test/read.cgi/tech/1483940967/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 751 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 12:51:39.26 ID:WTh+eJgx0.net]
- >>739
それでもいいと思うけど コンパイラの最適化が期待できる状況ならvectorをshared_ptrで包む必要は無い
- 752 名前:デフォルトの名無しさん (スプッッ Sd3f-nGAm) mailto:sage [2017/07/12(水) 13:59:49.69 ID:HO+tEfFId.net]
- うん、ただvectorを返せばいいと思うけど
- 753 名前:デフォルトの名無しさん (ワッチョイ 1706-pw7F) mailto:sage [2017/07/12(水) 14:16:55.03 ID:QOR+1nCC0.net]
- あれ、そうなんですか??
ムズイな・・ vector自体を返しても、要素自体はコピー?されないってことですかね? ぐぉぉぉ。
- 754 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 14:31:08.44 ID:vUTYJqrrd.net]
- なんでキャラ配列では終端文字を意識して
他の型の配列では意識しないんだぜ
- 755 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/12(水) 14:43:06.63 ID:trGyb9bp0.net]
- >>745
RVO やムーブによってコピーが抑制される。 従来の RVO は「してもよい」という、 省略による最適化を許す形で規定されていたが C++17 からは必須になってるので、 条件がそろえば確実にコピーはされないことが保証される。
- 756 名前:デフォルトの名無しさん (スプッッ Sd3f-nGAm) mailto:sage [2017/07/12(水) 15:24:37.86 ID:HO+tEfFId.net]
- >>745
そもそも、 もともと存在しているvectorを返すのかメソッド内で構築したvectorを返すのか、 がはっきりしてない。 後者だったら参照とかでなく単にvectorを返せばいい。
- 757 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 19:23:12.64 ID:WTh+eJgx0.net]
- >>745
C++で値の代入にはコピーとムーブの2種類がある ムーブは代入先に中身を移譲する機能 ムーブ元はムーブ前と後とで同一であるとは保障されない 具体的には定義したムーブコンストラクタとムーブ代入演算子に記述したコードが実行される vectorの場合ムーブされると内部の配列のポインタを代入先のvectorの配列のポインタに付け替える こうすることで中身をコピーせずポインタの代入だけで他のvectorに移し変えることができる ローカル変数など関数のスコープを抜けたら自動的に開放されて二度と使われない変数を戻り値にした場合、コピーしているように見えても自動的ムーブが選ばれている
- 758 名前:デフォルトの名無しさん (ワントンキン MM7f-hrVG) mailto:sage [2017/07/12(水) 21:17:08.54 ID:AocYxtQtM.net]
- >>749
最後嘘じゃない? RVOが効くケースでは直接構築が優先だよね?
- 759 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:04:13.96 ID:WTh+eJgx0.net]
- >>750
正しくは変数の初期化の式で呼び出した場合は直接構築になりそれ以外ではムーブになるでした
- 760 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 22:10:13.78 ID:SNfdy8Tor.net]
- >>751
それは規格のどこに書いてあるのですか?
- 761 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:34:27.41 ID:WTh+eJgx0.net]
- >>752
規格厨じゃないから知りません
- 762 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 22:35:41.04 ID:SNfdy8Tor.net]
- なるほどこうやってデタラメが吹聴されて世の中が嘘だらけになるのだな
- 763 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:42:26.18 ID:WTh+eJgx0.net]
- >>754
何の引用も無しに書いた文章なんて嘘まみれに決まってるだろ
- 764 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 23:21:39.63 ID:vUTYJqrrd.net]
- 上の方にあるbitいじりの件ってわざわざint型に演算していれ直す必要もなくね?って思い始めた
charの先頭文字をint*に直して操作するのじゃダメなんか??
- 765 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/12(水) 23:36:27.73 ID:cPl7Kb1c0.net]
- >>756
何言ってるか分からないのでコードで頼む。 ちなみに、アラインメントとかは理解してる?
- 766 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 06:46:33.90 ID:lX8cJUTX0.net]
- >>756
>>722 >>727
- 767 名前:デフォルトの名無しさん (ワッチョイ 321b-HOJV) mailto:sage [2017/07/13(木) 06:48:27.63 ID:Yj3E6QQW0.net]
- >>700
C++の規格ではいつまでたってもビットローテーション入れてこないからな。 だが、ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、 両方作って確認した方がいいぞ。 バレルシフタ載ってるMPUじゃないとビットシフトが結構重かったりする
- 768 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 07:03:23.04 ID:lX8cJUTX0.net]
- > ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、
意味不明 ローテーションは後半だぞ 前半はただ単にintにロードしてるだけ なぜかビッグエンディアン形式で 環境はSHか何か?
- 769 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 07:05:59.44 ID:lX8cJUTX0.net]
- C++にローテーションなんか入れなくて良い
使う機会も少ないし、簡単にC++に表記できるし 他に増やしたいものは色々ある そっち優先で
- 770 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/13(木) 08:50:42.40 ID:g1X/OFssd.net]
- まるで開発資源が足りてないかのような言い分
- 771 名前:デフォルトの名無しさん (ドコグロ MM36-OTuW) mailto:sage [2017/07/13(木) 12:50:51.77 ID:EiZFhTPMM.net]
- 理解するための俺の頭の資源は有限
- 772 名前:デフォルトの名無しさん (スッップ Sd70-YkGU) mailto:sage [2017/07/13(木) 13:23:34.41 ID:b1PvI/zld.net]
- >>762
言語の機能として、新たな演算子を新たな文字で作るのは無駄だと 標準ライブラリに入れるっていうならどうぞご自由に
- 773 名前:デフォルトの名無しさん (ワッチョイ b2e4-vU4W) mailto:sage [2017/07/13(木) 19:02:52.17 ID:oXf/mLI10.net]
- boostのdynamic_bitsetにバイト列との相互変換機能とバイトオーダーを切り替えられる機能と範囲を切り出せる機能を追加したものを標準に入れるべき
- 774 名前:デフォルトの名無しさん (ワッチョイ baf0-z+eH) mailto:sage [2017/07/13(木) 19:48:54.11 ID:XkT7ManS0.net]
- FFTで使うビット逆転も仲間に入れてよ
- 775 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 20:46:05.57 ID:lX8cJUTX0.net]
- >>766
ビット演算のテクニックの基本とかに載ってそう
- 776 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:06:39.82 ID:RqiuYpPc0.net]
- ファストフーリエトランスファーの良い参考文献ないっすかね
- 777 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 21:20:53.50 ID:lX8cJUTX0.net]
- おれ専門家だから何でも聞いて
- 778 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d015-S4qQ) mailto:sage [2017/07/13(木) 21:21:33.62 ID:anRp6w5D0.net]
- まずは Wikipedia から
- 779 名前: ◆QZaw55cn4c (ワッチョイ 6e9a-n9U6) mailto:sage [2017/07/13(木) 21:25:32.45 ID:NDMOLt7F0.net]
- >>76
- 780 名前:8
https://www.amazon.co.jp/dp/4789830292/ []- [ここ壊れてます]
- 781 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 21:27:47.04 ID:lX8cJUTX0.net]
- そうだね
基礎から教えるつもりはない 応用、テクニック、実装方法、高速化、AVX512の使い方、キャッシュサイズによる最適化、HDDを使った場合の並べかえ方法、... など具体的に聞いてくれれば
- 782 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:34:36.15 ID:RqiuYpPc0.net]
- やりたいことはリアルタイムオシロですかね
ビジュアル的に表示出来ることから始めて 最終的にはArduinoで周波数検波器作りたいかも
- 783 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:38:11.93 ID:RqiuYpPc0.net]
- >>771
ほしいものリストに追加しますた ありがとうございますた
- 784 名前:デフォルトの名無しさん (ワッチョイ 321b-HOJV) [2017/07/14(金) 06:45:45.62 ID:JUkrjA2t0.net]
- >>760
バレルシフタが何かわからんアホはすっこんでろ
- 785 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/14(金) 07:04:53.46 ID:dCevqkg20.net]
- >>759の真ん中のブロック、意味がわかるなら解説よろしく
- 786 名前:デフォルトの名無しさん (スップ Sdc4-aKa0) mailto:sage [2017/07/15(土) 13:45:59.81 ID:fnbVxk0dd.net]
- VBから読み出せるdllを作るときの注意点ってある??
- 787 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/15(土) 14:17:18.00 ID:u0zSb1i50.net]
- メモリ管理
- 788 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 15:27:55.38 ID:GMW24mlhd.net]
- >>777
__stdcall呼び出しにする ってかどのVB?
- 789 名前:デフォルトの名無しさん (スップ Sdc4-aKa0) mailto:sage [2017/07/15(土) 17:14:07.14 ID:fnbVxk0dd.net]
- >>779
vb6.0っていう化石
- 790 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 17:26:21.05 ID:GMW24mlhd.net]
- >>780
ふーん、なら VB側のByRef x As Variant は、C++側で Variant* pV とVariant& x のどっちでも受けられる これ豆な
- 791 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 17:33:23.30 ID:GMW24mlhd.net]
- >>780
あと、文字列はBSTRで受けるとなぜか文字化けすることがある。 Variantで受けてbstrValメンバを取り出すと大丈夫。(もしくはpbstrValメンバ) 不思議だ。
- 792 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 16:02:40.33 ID:o1PqrRM30.net]
- テンプレートの部分特殊化について質問っす
ideone.com/Rz72oc この例なんで曖昧になるですかね? 下が選ばれると思ったんですが
- 793 名前:デフォルトの名無しさん (ワッチョイ 955a-qt4g) [2017/07/16(日) 16:21:43.57 ID:CxpOV7IS0.net]
- const が付いてるからじゃね
- 794 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 17:06:50.01 ID:o1PqrRM30.net]
- >>784
constなintなのにconst T&のconst関係なくない? それにT(&)[4]の方がより細かい気がする
- 795 名前:デフォルトの名無しさん (ワッチョイ 955a-qt4g) [2017/07/16(日) 18:31:12.78 ID:CxpOV7IS0.net]
- struct A<T (&)[4]> は、
struct A<const T &> の特殊化じゃないんじゃね?
- 796 名前:デフォルトの名無しさん (ワッチョイ f146-I8+U) [2017/07/16(日) 18:46:15.15 ID:TI5o59vg0.net]
- テンプレート引数型を明示してるのに、その型に一意にマッチする定義がないからでしょ。
どっちが近いかを決定するような優先順位の規定がないので ambiguous になる。 compiler からしてみたら仕様がなければ勝手に判断できないって話。
- 797 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd70-qcL/) mailto:sage [2017/07/16(日) 18:49:24.15 ID:8ivnKhmqd.net]
- int (&)[4]の左側にconst付ける意味あんの?
- 798 名前:デフォルトの名無しさん (オッペケ Srea-1m9k) mailto:sage [2017/07/16(日) 19:11:25.11 ID:0XlWr73/r.net]
- >どっちが近いかを決定するような優先順位の規定がない
何故か規格を読まない奴ほど自信満々に嘘をつく法則
- 799 名前:デフォルトの名無しさん (オッペケ Srea-1m9k) mailto:sage [2017/07/16(日) 19:21:41.99 ID:0XlWr73/r.net]
- 規格の8.3.4p1により配列のconstは要素のconstと等価なので、A<int const (&)[4]>はA<T const &>に適合する
- 800 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/16(日) 19:35:17.35 ID:F/PpVxkG0.net]
- C++14まででいいので全文日本語の規格書くれよ
- 801 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 20:01:11.52 ID:o1PqrRM30.net]
- 優先順位ルールよくわからんっす
- 802 名前:デフォルトの名無しさん (スプッッ Sd2a-aKa0) mailto:sage [2017/07/16(日) 20:21:10.26 ID:5frVCgipd.net]
- >>782
vbやったことないからなるほどよくわからん... vb6.0についてとか全然書籍とかもないから本当に困る
- 803 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/16(日) 20:26:00.20 ID:F/PpVxkG0.net]
- 古代言語の解読は自己責任だ
細かいこと考えたくなければ標準入出力で繋げばいい
- 804 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d015-S4qQ) mailto:sage [2017/07/16(日) 20:41:20.06 ID:tihnLl5v0.net]
- >>791
JIS に働きかけてくれ
- 805 名前:デフォルトの名無しさん (ワッチョイ f146-I8+U) [2017/07/16(日) 21:06:56.01 ID:TI5o59vg0.net]
- >>790
ありがとう、探してくれて。
- 806 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/16(日) 21:31:30.43 ID:Z5uaiz2pr.net]
- テンプレートの部分順序は規格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
- 807 名前:デフォルトの名無しさん (ワッチョイ 1a42-Z+b3) mailto:sage [2017/07/17(月) 06:43:20.69 ID:WTwWKmZ80.net]
- >>674
プロパティってのはオブジェクトの状態の抽象化 例えば、コンテナのlistのsizeはコンテナとしての状態 sizeは要素数に対して定数時間で取得可能って条件があるからメンバ変数としてsizeを持ってる そうでなければ線形時間になってしまう vectorは大抵の場合、確保したメモリの始端と終端、要素の終端を表すポインタをメンバ変数に持つけど ポインタ演算で定数時間で求められるから、sizeのメンバ変数は持っていない emptyも状態、listもvectorも空を表すbool型のメンバ変数は持たないけど コンテナとしてemptyかどうかの状態を取得できるわけで、メンバ変数と対とはなっていない つまり、クラス設計上必要なオブジェクトとしての状態のget/setが目的であって 外部からメンバ変数にアクセスするための機能ではないよ(単にそれも出来るよってだけ) >>700 charのポインタを4バイト幅の符号無し整数型にキャスト その毎にビット演算、ループ数も32回で済む エンディアンは気にしないw
- 808 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/17(月) 09:28:01.08 ID:ESb998SRr.net]
- >エンディアンは気にしないw
物は言い様で、本当は触ったことが無いのであった AIXやSPARC使いに「インテル能乙」と揶揄されても仕方ない
- 809 名前:デフォルトの名無しさん (ワッチョイ 1a42-Z+b3) mailto:sage [2017/07/17(月) 09:43:52.37 ID:WTwWKmZ80.net]
- >>799
1つの方法を示しただけで、必要なら気にしたら良いってレベルの話なんだけどな 質問者も完全な解決策ではなくアイディアを求めているだろうし
- 810 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/17(月) 09:52:45.96 ID:NM7AtMtK0.net]
- エクスプレッションテンプレートを使った二項演算子のオーバーロードって
・グローバル空間全体 ・特定の名前空間で定義して、使う部分ではその名前空間を指定 のどちらかになるということになりますか? つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?
- 811 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/17(月) 22:32:17.08 ID:ESb998SRr.net]
- 通常のクラスの例であるstd::complex<>は二項演算子を使う部分で名前空間など指定しなくても良いし
そのオーバーロード関数はクラスではなくstd名前空間に限定している 式テンプレートでそれ以上のことが必要なのだろうか
- 812 名前:デフォルトの名無しさん (ワッチョイ 7011-MRQN) mailto:sage [2017/07/18(火) 00:26:51.30 ID:2CukONSS0.net]
- 名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義するか、
ライブラリが提供する型以外を許容しないなら、演算子を各クラス内に定義するだけでいい ETと協調しうるあらゆる型も許容するために template <typename T, typename U> fugaexpression<T, U, ...> operator +(T t, U u); と書きたいのなら、演算子を名前空間内に書くとか enable_ifで条件に合わないものを弾くなりしないといけない
- 813 名前:デフォルトの名無しさん (ワッチョイ 7011-MRQN) mailto:sage [2017/07/18(火) 12:37:46.49 ID:2CukONSS0.net]
- 訂正
ETだから参照でないといかんね operator +(T &&t, U &&u)
- 814 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/18(火) 12:44:00.00 ID:VOd4+Wz60.net]
- なんとなくわかりました
やってみます
- 815 名前:デフォルトの名無しさん (ブーイモ MMfd-I8+U) [2017/07/18(火) 12:53:11.11 ID:CTdksPCiM.net]
- 式テンプレート作るのと、右辺値参照モノをしっかり作り込むのとどちらが良さげ?
- 816 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/18(火) 14:06:03.25 ID:C2L8wOjPd.net]
- 上でVB6.0について質問してるものだけどさらに重ねて質問させてください
VB6.0→C++に通信してる箇所が存在していてそこがstring→char※になってる これって文字化けしないの??
- 817 名前:デフォルトの名無しさん (スップ Sd02-y/ao) mailto:sage [2017/07/18(火) 15:57:42.98 ID:LmZYlO3Ud.net]
- >>807
さあ? "まみむめも"でも試しに入力してみれば?
- 818 名前:デフォルトの名無しさん (アウアウエー Sa66-C5HA) [2017/07/19(水) 07:57:29.52 ID:4WYjcaP8a.net]
- >>807
コード内で文字列生成して表示したらエンコードが違って文字化けとかあるけど、外部から文字列受け取ってただ表示するだけならエンコードとか関係ないから問題は無い。 (ただのバイト列) 外部から文字列受け取ってそれを加工するとかだと問題ある時はあるが。
- 819 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/19(水) 14:22:33.44 ID:cdBaS5I50.net]
- 804ですが
>>803 >名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義する これでできました。 ありがとうございます。
- 820 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 20:36:51.87 ID:ogeQAtV7d.net]
- >>809
サンクス!!! いじらないことにした 明示的な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); }
- 821 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 20:49:13.06 ID:MaD+cEa1d.net]
- >>811
importとexportを間違ってるよ。
- 822 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 21:54:41.55 ID:ogeQAtV7d.net]
- >>812
あ ごめん そこはexportってしてるから問題ない スマホで書き込む際に間違えただけです
- 823 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:02:10.86 ID:MaD+cEa1d.net]
- まずは、出来たdllをダンプしてみな。関数型にはWINAPIが必要だよ。
- 824 名前:デフォルトの名無しさん (オッペケ Srea-hJ3a) mailto:sage [2017/07/19(水) 22:06:19.96 ID:QocMLB2Ar.net]
- >>811
>間違っている箇所があれば教えてほしいです ほれ 1. (int (*)(int,int)) 2. GetProcAddress(hDLL, "AAA")
- 825 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:06:40.85 ID:MaD+cEa1d.net]
- こういう場合は関数ポインタ型をtypedefしたら楽だよ。
- 826 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:10:20.05 ID:ogeQAtV7d.net]
- >>815
ここ間違ってる? dll側の関数の引数に合わせてるのと、getprocaddressを使って関数呼び出してるだけだから問題ないと思ってるのだけども >>816 それって >>811 >間違っている箇所があれば教えてほしいです ほれ これをint (*)(int,int)を定義するってことよね?
- 827 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:12:49.52 ID:MaD+cEa1d.net]
- typedef int (WINAPI *MYFUNC)(int, int);
- 828 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:13:35.01 ID:ogeQAtV7d.net]
- __stdcallがないってことか!!!!!
- 829 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:14:01.35 ID:MaD+cEa1d.net]
- dumpbinというダンプツールがあるから、それを使ってdllの情報をダンプする。
- 830 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:16:16.73 ID:MaD+cEa1d.net]
- どうやってdllを作った? 初心者だから作り方間違ってる可能性がある。
- 831 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:18:12.53 ID:ogeQAtV7d.net]
- >>821
ダンプするってのがほぼほぼ理解できてない visualstudioでdll選んで空のプロジェクトを選んだ それでcpp追加してその内容にさっきの構文とおまじないのwinmainを書いてビルド
- 832 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:21:21.65 ID:MaD+cEa1d.net]
- >>822
dllの場合はWinMain要らない。ダンプは専用のコマンドプロンプトで行う。ってことは、コマンドプロンプトの使い方も勉強しないといけない。
- 833 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:22:37.56 ID:MaD+cEa1d.net]
- DLLの場合はDllMainだね。
- 834 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:25:28.38 ID:ogeQAtV7d.net]
- >>824
あ それか 落ちてる理由はそこな気がしてきた...
- 835 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:25:41.24 ID:MaD+cEa1d.net]
- あっ、それからC++からC言語の関数を定義・参照するにはextern "C"を付けないといけない。
- 836 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:31:08.38 ID:MaD+cEa1d.net]
- C++関数のシンボル名は「mangling」によって変な名前になり、コンパイラーによって違うから(標準化されていない)、DLLでは使いづらいので、C言語関数にすることが多い。
- 837 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:39:22.35 ID:MaD+cEa1d.net]
- DLL内部の輸出関数にextern "C"を付けてC言語関数にする。
関数ポインター型をtypedefする。 DLLをダンプして関数シンボル名を確認する。
- 838 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:41:38.53 ID:ogeQAtV7d.net]
- >>826
C言語の関数を定義参照するってのは.cファイルが出てきたときの話よね?
- 839 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:43:26.89 ID:MaD+cEa1d.net]
- コンパイラーによって違うが、C言語関数が__cdeclのときは、そのシンボル名は先頭に下線が付き、__stdcallのときは関数名そのままだったかと。
- 840 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:46:12.04 ID:MaD+cEa1d.net]
- >>829
C++でDLL関数を参照するときは、DLL関数がC言語関数でないと、シンボル名がややこしくなって、GetProcAddressが難しくなるよ。ダンプすればシンボル名が確認できる。
- 841 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:51:10.86 ID:ogeQAtV7d.net]
- >>831
CでもC++でも構わないのだけどその関数のなかでクラスを呼ぼうとしてるのだけど可能なのだろうか?? >>830も少し気になったのだけど __stdcallしてたのにリンカエラーの時に__cdeclのリンカエラーが出ていた
- 842 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:54:29.77 ID:MaD+cEa1d.net]
- スタートメニューのVSの項目に、「なんちゃらコマンドプロンプト」というのがあるはずだ。
ソイツを起動すると黒い画面が出て来て、キーボードで「CD」コマンドで対象のフォルダに移動。 dumpbinに適当なコマンドライン引数を付けてEnter。
- 843 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:56:32.59 ID:MaD+cEa1d.net]
- >>832
DllMainにも__stdcallが必要。
- 844 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:59:03.92 ID:MaD+cEa1d.net]
- >>832
関数の引数と戻り値がC言語関数に見えれば中身C++でもOkay。
- 845 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:59:52.02 ID:ogeQAtV7d.net]
- >>835
そうなんだ じゃあextern cつけておいた方が安全みたいなのね 名前解決しやすいかしにくいかの話になるんだね
- 846 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:00:31.80 ID:MaD+cEa1d.net]
- __stdcallやWINAPIなどを付けなければ、デフォルトで__cdeclになる。
- 847 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:02:59.40 ID:MaD+cEa1d.net]
- コンパイラーによってはデフォルトの呼び出し規約を変更できるかも知れない。
- 848 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:07:11.36 ID:MaD+cEa1d.net]
- 複数の関数を、extern "C" { ... } で囲ってもいいし、関数の直前にextern "C"を付けてもいい。
- 849 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:10:05.85 ID:ogeQAtV7d.net]
- >>839
個々につけた方が明示的で良いように思ったので個々でつけることにします dll難しい.... linuxのsoファイル作成のソースコードと、winのdll作成のコードを共通化しようとしたら defineで切るしかない??
- 850 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:14:11.62 ID:ogeQAtV7d.net]
- 質問ばかりで申し訳ないけどもヘッダファイルって作られないのかな?
dll側で定義した関数を公開するときにインポートライブラリで読み込ませるならばヘッダファイル必要になると思うのだけど それは自身で作成することになる??
- 851 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/19(水) 23:16:07.85 ID:rRbujBCW0.net]
- >>840
Boost.DLLを使う
- 852 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:17:50.12 ID:MaD+cEa1d.net]
- >>841
Unmanaged C/C++では、慣習として、公開するヘッダーファイルは自分で書かないといけない。 それは公開する範囲を決める意味で重要な作業になる。
- 853 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:25:33.39 ID:MaD+cEa1d.net]
- WinMainやDllMainなど以外で自分で作った関数については、WINAPIよりもAPIENTRYを使うのがマナー。
- 854 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:28:24.94 ID:ogeQAtV7d.net]
- >>844
なんだそのAPIENTRYというのは >>842 さらに知らない単語も出てきた
- 855 名前:デフォルトの名無しさん (ワッチョイ 96ea-zKZC) mailto:sage [2017/07/19(水) 23:30:05.93 ID:K+rHLYmS0.net]
- もう面倒だからC#で作れよ
- 856 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:32:25.59 ID:MaD+cEa1d.net]
- <windows.h>の中身を覗いてみると、Win32APIの流儀が見えてくる。時間泥棒かも知れないが、それが面白い。
- 857 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:35:11.33 ID:MaD+cEa1d.net]
- Boostという準標準ライブラリ群があって、Boost.DLLはその一部。APIENTRYマクロはWINAPIマクロの別名。
- 858 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:39:27.90 ID:MaD+cEa1d.net]
- 面倒なのが嫌なら最初からC#使え。C++は素人が来るところではない。
- 859 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:46:25.94 ID:ogeQAtV7d.net]
- >>846
開発でC++が必須なんだ..
- 860 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:50:31.02 ID:MaD+cEa1d.net]
- で、問題は解決したか?
- 861 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/19(水) 23:52:51.09 ID:rRbujBCW0.net]
- それはいいけどググればすぐ解決する程度の問題をわざわざ人に聞くべきではない
- 862 名前:デフォルトの名無しさん (ワッチョイ 274b-FPZE) mailto:sage [2017/07/20(木) 00:02:01.05 ID:a17NgPNI0.net]
- ググれってよく見るけど、最近はググった結果がQiitaとかで余計わからなくなる人いそう
- 863 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/20(木) 00:26:00.45 ID:68uSpz6dd.net]
- >>852
ぐぐった結果色々な方法がありすぎてどれが正しいか判断つかなくてここにきた >>851 今は自習中 明日の業務で試してみます
- 864 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/20(木) 00:35:16.57 ID:am65me5o0.net]
- 色々は無いでしょ
- 865 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/20(木) 11:41:47.84 ID:aRd+na0X0.net]
- >>847
<windows.h>の中身を覗いてMSの片鱗を味わったがsmallに引っ掛かって1時間ほど時間を潰した どうしてくれるんだ
- 866 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/20(木) 19:54:56.95.net]
- >>854
ひょっとしてまだやってるのか? 方法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 と書いてプロジェクトのプロパティのリンク設定でこのファイルをモジュール定義ファイルに指定する
- 867 名前:デフォルトの名無しさん (ササクッテロリ Sp1b-Iuq2) [2017/07/20(木) 23:54:34.71.net]
- winapiの流儀とか見ていて吐き気を催す
- 868 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 00:44:29.75.net]
- WINAPIのtypedefされた型を元のプリミティブ型に書き直すのが趣味です
- 869 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/21(金) 00:47:34.17.net]
- F12を叩きたいのか
- 870 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 04:01:38.56.net]
- extern "C" __declspec(dllexport) int __stdcall func(int,int){}
"?AAA@@YGHHH@Z"のような吐き気催す引数無くした名前だけ出力したい場合は extern "C" を前に付けると解決
- 871 名前:デフォルトの名無しさん (ワッチョイ a7b4-jxVo) mailto:sage [2017/07/21(金) 07:00:36.74.net]
- qiita.com/YukiMiyatake/items/9c099041eab9ee8b349d
uniqu_ptrに頼って生歩使わないとか、 そんなだったらはじめからC++なんか使うな アホはC++使うなって見本 >リソースを生で使うのは アンチデザパタです! それがどーした。パターンでしか考えられないお前
- 872 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 07:42:02.40.net]
- えらいねー。
- 873 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 07:57:26.95.net]
- 所有権を持った人が自分でnew deleteするってのは確かにもうあり得ないでいいだろう。
それを「生ポインタを使わない」と表現するのは言い過ぎというか誤解を生む。
- 874 名前:デフォルトの名無しさん (ワッチョイ 274b-G5Pk) mailto:sage [2017/07/21(金) 08:46:52.32.net]
- 生保使う場面ってどんな時だろ?
- 875 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/21(金) 08:47:22.86.net]
- delete禁止構文欲しいぜ
- 876 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 08:49:46.05.net]
- 生ぽは、その場で文字列生成して関数に食わせる以外は参照だなぁ。
- 877 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/21(金) 08:54:06.32.net]
- >>865
nullptr受け取る可能性のある古臭い設計のコードを使うときじゃね? 自分で設計するときは使わん。
- 878 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 10:34:18.10.net]
- 自分でnew deleteするなんて発想が無くなってきたから別にポインタ渡しに違和感ないけどな
- 879 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 11:14:02.61.net]
- 設計的にどうなんだろう。
- 880 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 11:40:31.31.net]
- 生ポインタは誰が資源管理するのか曖昧になるからよくない、って主張は昔はあったと思う。
いまソースコードを検索してnew もdeleteも見当たらないという状況なら、そんなのはもう 忘れていいと思う。
- 881 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df15-QK4i) mailto:sage [2017/07/21(金) 12:08:08.05.net]
- 例外が発生したときの後始末なんかもきちんとしようと考えると面倒くさいし、
スマートポインタは積極的に使うべきなんだろうな。
- 882 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 12:40:47.73.net]
- Qtみたいな自分でnewはするけど親オブジェクトがdeleteしてくれるようなものもある
- 883 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:13:44.75 ID:7GF1vWDt0.net]
- unique_ptrとか中身リファレンサだろうしリファレンサとかクラスで自己実装しちゃうけどね
- 884 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:16:06.65 ID:7GF1vWDt0.net]
- あ、unique_ptrは複製が効かないポインタか
shared_ptrと混同していたorz
- 885 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:18:37.74 ID:7GF1vWDt0.net]
- でもイラネな
unique_ptrでメンバ全部実装やるとアタマ狂うだろ多分
- 886 名前:デフォルトの名無しさん (ワッチョイ 67a2-fDNv) [2017/07/21(金) 18:24:31.33 ID:uK7tgvol0.net]
- いらないとか使わないとか言いつつ、実のところ、理解できなくて使えません、って人を現場で何人も見てきたよ。
- 887 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/21(金) 18:39:26.01 ID:rSdKKkw+M.net]
- うちのプロダクションコードほぼ100%はユニポだよ
リファレンスはそこらじゅうでもってるけど
- 888 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 18:56:21.10 ID:SclDYwDCd.net]
- >>877
なんでそんなやつを雇ったんだよ
- 889 名前:デフォルトの名無しさん (ワッチョイ 67a2-fDNv) [2017/07/21(金) 19:36:52.29 ID:uK7tgvol0.net]
- >>879
人手不足なんじゃね? 俺が雇ったわけじゃないし、派遣さんとかだと法律上選べないでしょ。
- 890 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/21(金) 21:20:11.09 ID:QkEYt5+b0.net]
- 誰も触れないけど、delete[] だよな?
まぁ、さておき、new使うか? オレnew自体ほとんど使わないんだけど。。。 組み込み系だとやっぱ使うのかね? メモリ管理なんて、スタック上とか、コンテナに任せちゃえば、いいとおもうんだ。
- 891 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 21:43:07.75 ID:OjZ8KrLm0.net]
- いいと思うよ
今のバージョンではnewを使わせるライブラリ以外で使う状況が無い
- 892 名前:デフォルトの名無しさん (スプッッ Sd7f-AsiQ) mailto:sage [2017/07/21(金) 22:02:26.89 ID:mLcSl7GWd.net]
- make_uniqueとmake_sharedが出来てからはな
- 893 名前:デフォルトの名無しさん (ワッチョイ bfaf-BQa+) mailto:sage [2017/07/21(金) 22:10:51.61 ID:l1puV9v10.net]
- templateでエラーが出された場合なんかでチェックするために
templateが展開された状態を見る手法みたいなのってありますかね?
- 894 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/21(金) 22:26:33.98 ID:rSdKKkw+M.net]
- make_sharedってカスタムデリータいれられたっけ?
- 895 名前:デフォルトの名無しさん (ワッチョイ bfaf-BQa+) mailto:sage [2017/07/21(金) 22:50:57.29 ID:l1puV9v10.net]
- Xcodeのビルドログ見たらほぼ>>884だったので>>884は取り下げます
- 896 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 23:09:04.52 ID:7GF1vWDt0.net]
- 使い方は解るよ
ただ、自転車の補助輪みたいだなと
- 897 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 23:15:13.65 ID:OjZ8KrLm0.net]
- そういうのより
std::vector<int> v; ↑これを右クリックして展開されたコードを表示するようなことがしたい
- 898 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/22(土) 17:58:14.35 ID:0MeMH5fDd.net]
- >>857
わざわざサンクス 全く同じことしたけども吐き気催すような名前はついたままだったからdefファイルで対応することにしたよ
- 899 名前:デフォルトの名無しさん (ワッチョイ bfc5-/jiT) mailto:sage [2017/07/22(土) 19:30:56.71 ID:RGdGfASA0.net]
- わざわざマングルされたメソッド名をエクスポートなどせずともファクトリーメソッドにすれば良いのでは…
ファクトリーメソッド自体はextern "C"で逝ける DLL側のコードで確保したメモリはDLL側で開放する(プロセス本体側のコードで確保したメモリはプロセス本体側で開放する) という点は気おつけねばならないが と流れを読まずにレス
- 900 名前:デフォルトの名無しさん (ワッチョイ bfc5-/jiT) mailto:sage [2017/07/22(土) 20:49:40.35 ID:RGdGfASA0.net]
- スマンorz
誤: ファクトリーメソッド 正: アブストラクトファクトリーメソッド アブストラクトファクトリーメソッドなら具象クラスのコードは全部DLLL側になるので安心 オブジェクトのdeleteもDLLL側でやるように関数を設けてDLLLからエクスポートしてそれを使う
- 901 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/22(土) 20:53:28
]
- [ここ壊れてます]
- 902 名前:.27 ID:XKQJiiwl0.net mailto: DLLLL? []
- [ここ壊れてます]
- 903 名前:デフォルトの名無しさん (ブーイモ MMcf-fDNv) [2017/07/22(土) 20:59:49.34 ID:g3jBnlfdM.net]
- どぅるるる
- 904 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/22(土) 21:12:32.20 ID:XKQJiiwl0.net]
- DLLゲームというものがあり、この四つの規則だけでDIIをDLLに変換できるか、というのがパズルの主旨である
- 905 名前:デフォルトの名無しさん (ワッチョイ 276f-hfaq) mailto:sage [2017/07/23(日) 02:54:24.55 ID:JReadhjR0.net]
- new,new[],delete,delete[]を定義すれば、全てDLL側で実装出来るでしょう?
- 906 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 11:16:55.64 ID:T5oE3FpLd.net]
- CPUやOSに依存したいコーディング難しいよう
- 907 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/23(日) 11:25:11.61 ID:Rkw6OP4p0.net]
- 依存姿態?
- 908 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 11:26:02.43 ID:T5oE3FpLd.net]
- >>897
しないだった
- 909 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:41:00.33 ID:7fREas1Ld.net]
- エンディアン
charのサイズ 負の数の表現方法 この辺がくせ者
- 910 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 12:43:24.45 ID:Z5IwvI350.net]
- 符号付整数の右シフトとwrap aroundは未定義動作
だがあんま認
- 911 名前:ッしてる人が居ないという []
- [ここ壊れてます]
- 912 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:47:13.35 ID:7fREas1Ld.net]
- charが16bitや32bitだと、
8bit単位のデータを扱うのが非常に面倒 現実的にはパック形式も必要になるので
- 913 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:48:45.60 ID:7fREas1Ld.net]
- 負の数もいろいと
00...0はトラップ値だったり
- 914 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:49:28.11 ID:7fREas1Ld.net]
- 80...00の間違い
- 915 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:50:38.60 ID:7fREas1Ld.net]
- near farとか
各種pragmaとかアラインメントとか 機種依存しないコードなんてのは実際には妄想
- 916 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:52:19.16 ID:7fREas1Ld.net]
- 使用可能リソースがそもそも違う
- 917 名前:デフォルトの名無しさん (ワッチョイ df33-9XI3) mailto:sage [2017/07/23(日) 14:01:31.88 ID:Ach+AE6n0.net]
- stdintじゃいかんの?
- 918 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 14:22:24.82 ID:7fREas1Ld.net]
- それで何が解決する?
- 919 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 14:38:32.39 ID:+MmkkbFw0.net]
- そういうのは必要な人がパッチを書けばいい
プロジェクトのメインの開発者は一般的なPC用CPUだけ想定していればいい
- 920 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 15:01:31.12 ID:7fREas1Ld.net]
- 組み込み機器を完全に無視した発言
- 921 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 16:52:13.50 ID:T5oE3FpLd.net]
- エンディアンへの注意と
sizeof演算子への注意と unsignedか否か この辺を注意すればまずは良いんだね
- 922 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 16:57:12.36 ID:7fREas1Ld.net]
- 互換性のポリシーをはっきりすること
最近のPCだけならエンディアンやアラインメント、charのサイズやintのサイズは関係ないし 汎用なら>>899も考えないと
- 923 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 17:23:53.30 ID:T5oE3FpLd.net]
- 難しいな
色々なPCで動作させようとするのは ところでdllでもsoでも使えるようなコード書きたいんだけども 呼び出し部分だけifdef切るのとソースコード自体わけるのとどちらが良いんだろ?
- 924 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 17:27:19.50 ID:71jKdlZw0.net]
- dllと言えばdllの呼び出し口以外の内部で完結してるような関数ってどうやってテストするんだろう
俺それやったことねえや
- 925 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 18:02:24.35 ID:+MmkkbFw0.net]
- そもそもpublicでないものをテストする必要は無い
- 926 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 18:04:39.20 ID:7bD+iXj90.net]
- 日本は未テスト納品が当たり前だからな。
- 927 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 18:10:47.08 ID:71jKdlZw0.net]
- >>914
パブリックでなくとも動作検証は必要ではないか?って思い始めた 関数単位でのテストが積み重なって一番大きなdllのテストに移る的な 設計上に多重継承が現れたんだけど多重継承って設計的にどう??
- 928 名前:デフォルトの名無しさん (ワッチョイ a77f-E/h9) mailto:sage [2017/07/23(日) 18:20:48.79 ID:1KmUXPg00.net]
- テストの目的にもよるな。
仕様に対する保証という意味でならば当然公開しないものはテストの必要がないが、 開発するうえではモジュール毎にテストできた方が問題の発見に役立つし。 テストコードはスタティックリンクするのがお手軽なんじゃないかな。
- 929 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 18:39:25.88 ID:+MmkkbFw0.net]
- >>916
多重継承は気をつけて使えば問題ない
- 930 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 18:52:38.36 ID:71jKdlZw0.net]
- >>917
俺の意図的にはそんな感じだね 関数ごとにテストして品質を担保する的な ただdll内で呼ばれている関数を静的リンクできるん?? >>918 気を付けるのが難しそう よくよく考えたら多重継承ではなくクラスの中でクラスを定義する方が自然だった
- 931 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/23(日) 19:04:55.28 ID:b+Hb+B30M.net]
- 継承をextendとして使う場合は多重継承しやいほうがいい
- 932 名前:デフォルトの名無しさん (ワッチョイ a77f-E/h9) mailto:sage [2017/07/23(日) 19:26:40.53 ID:1KmUXPg00.net]
- >>919
>ただdll内で呼ばれている関数を静的リンクできるん?? objで取り込むかlibかソースか、やり方はいろいろあるだろうけど普通にできるでそ。
- 933 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 19:32:13.78 ID:Z5IwvI350.net]
- 書いたらテスト、これ常識
関数単位ぐらいの細かい単体テストは、呼び出し元込みの結合テストで境界条件を尽くせる(それぐらい簡単な関数である という論理的見通しがある場合のみ省略できる >>914は常に書きっぱなしでテストしないと宣言しているに等しい >>919 dll内の関数のテストはソースファイルを単体テスト用のプロジェクトと共有して単体テスト用のプロジェクトでやるとか、 dll内にテストコードを埋め込んでテストしてテストが終わったら#if/#endifで切り離す みたいな
- 934 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 19:47:00.96 ID:T5oE3FpLd.net]
- 単体テストってGoogleテストとかのドライバ的なやり方をさしてんのか?
それともvisual studioに機能としてついてるやつをいってんのか?
- 935 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 20:14:53.55 ID:H7crLcrqr.net]
- >>900
>符号付整数の右シフトと (中略) は未定義動作 右? それは規格のどこに書いてあるのですか?
- 936 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 20:16:43.64 ID:T5oE3FpLd.net]
- 符号つき整数は論理シフトか算術シフトかコンパイラ依存ってだけの話でないの
- 937 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 20:22:46.29 ID:Z5IwvI350.net]
- 不肖私めが述べさせていただきまするが、
Googleテスト(のプロジェクト)と本番用DLLプロジェクトのソースコード共有は両立できる (ソースコード共有はテストドライバというよりはビルドシステム側(IDEやmake)が持っている機能なので、 Visual Studioの単体テストプロジェクトは使ったこと無いから知らん なお、書いたらテスト、とは>>922で書いたが、書きなおしていないコードのテストまで毎晩やるか否かは開発手法による エクストリームプログラミングなんかだと多少手間をかけてでもGoogleテストで全テストできるようにすねきだが 古式ゆかしいVカーブモデルとかだと「下流行程のテストで検証済みのものを上流行程のテストに上げる」という建前なので、 出戻りのリスクと引き換えに、下流行程でのテストをそう繰り返しはしないからテストドライバを使うまでもない という考えも有り得る。 まさかとは思うが、テストドライバを使うか否かで適切なテストコードを書けたり書けなかったりするとか飯田さんよね?
- 938 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 20:27:48.89 ID:7bD+iXj90.net]
- 単体テスト、レグレッションテストしない奴は信用できない。
- 939 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/23(日) 20:40:09.17 ID:b+Hb+B30M.net]
- リグレッションテストが通ってるから単体はおろそかでいいか
→単体テストがないせいでリグレッションが落ちた理由がわからない(´・ω・`) →よし単体テスト書くか!あれ?バグ発見!直すとリグレッションの期待値変わるけどまぁしばらくは仕方ないか →あれ?久しぶりにリグレッションテストの結果見るとすげー値が変わってる… →リグレッションテストメンテするか… この輪廻から解脱できません、どうしたら成仏できますでしょうか
- 940 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 20:43:41.49 ID:+MmkkbFw0.net]
- >>928
テスト駆動開発の理論を遵守して書く
- 941 名前:デフォルトの名無しさん (ワッチョイ df11-efHF) mailto:sage [2017/07/23(日) 20:57:27.35 ID:M0TZP5Vd0.net]
- >>923
それはテストのやり方でしょ ひょっとしてテストの種別(単体テスト、結合テスト、総合テスト... まあ名前や内容は色々違うけど)とテストのやり方の区別がついてないの?
- 942 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 21:08:20.70 ID:7bD+iXj90.net]
- なるほど。日本のSEは二種、基本情報処理すら受からないからな。
工程に入ってなくて当然だな。
- 943 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:14:38.25 ID:H7crLcrqr.net]
- >>925
それは未定義動作とは言わないし、 未定義動作を起こす左シフトを差し置いて右シフトが出てくるのは 何かおかしいのではないかという気がしてならない
- 944 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 21:19:26.67 ID:7bD+iXj90.net]
- 掛け算、割り算が糞遅いアセンブラならともかく、Cで符号付きをシフトする用途はなに?
- 945 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 21:22:45.19 ID:71jKdlZw0.net]
- >>922
質問したの俺だけど別の人が書き込んでるね テストの手法として俺は悩んでる DLL内の呼び出されるような関数をどうやってテストすれば良いのかと ドライバみたいなの作っても動かせるのは呼び出し口だけで合って 呼び出し口でいくら網羅テストしてもそれは呼び出し口のテストだしなぁーって dll内にテストコード書き込むのことで実現できると思ったけどもそれはそれで汚いなって思ったから、 何かしら直接呼び出すことできないかなって聞いてた そう色々と考えていたけど ただ単に関数の掛かれているcppファイルを取り込んだexeを作れば良いだけか?って思い始めた
- 946 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:32:37.27 ID:H7crLcrqr.net]
- この他人の回答を読まないコミュ障こそがこのスレの醍醐味
- 947 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 21:38:41.45 ID:71jKdlZw0.net]
- >>926
俺が聞きたかったのはまさにその最後のだな そのまさかです そんなレベルなんですよ・・・
- 948 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:41:07.86 ID:H7crLcrqr.net]
- >>933
特定のビットを取り出したり切り貼りしたい時でないのか ビット操作したい時に掛け算割り算を持ち出す方が変人かと
- 949 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 21:52:14.22 ID:Z5IwvI350.net]
- >>932
タダで手に入るn3337.pdfの§5.8によると確かに - 符号付整数の左シフトの結果は representable in the result type (値域内)でない場合未定義動作 - 符号付整数の右シフトの結果は処理系依存 と書いてあったわスマン; ちな漏れの認識では{処理系依存}⊂{未定義動作} 根拠はJISの未定義動作の定義による…
- 950 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 21:59:51.68 ID:Z5IwvI350.net]
- いやすまん>>938の末尾2行撤回
これは前に認識を改めたんだった; > 未定義の動作に対して,その状況を無視して予測不可能な結果を返してもよい。翻訳時又はプログラム実行時に,文書化された,環境に特有な方法で処理してもよい であって、未定義動作の検出やエラー処理の方法はともかく、未定義動作自体はどこまでいっても未定義動作
- 951 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 22:47:02.24 ID:7bD+iXj90.net]
- >>937
回答になってないし、変人はおまえだよ。算術シフトが何か知らないでレスすんな。
- 952 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 23:05:50.01 ID:H7crLcrqr.net]
- この自分の質問の日本語さえ読めないが故の意味不明なレス
それがこのスレの醍醐味
- 953 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 23:10:22.36 ID:7bD+iXj90.net]
- >>941
おまえのスキルはとても他人の質問に回答するレベルではない。しかもコミュ障ときてる。
- 954 名前:デフォルトの名無しさん (ドコグロ MM9f-efHF) mailto:sage [2017/07/24(月) 08:15:31.13 ID:KtTsv21zM.net]
- >>937
> 特定のビットを取り出したり切り貼りしたい 符号付きでやってるならこのスレに書き込むのはやめた方がいいレベル
- 955 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/24(月) 17:14:10.91 ID:mYhfbnvOr.net]
- もちろん符号付きです^^
流石に最上位ビットまで使う場面では使わないが
- 956 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:14:06.75 ID:OsdOk4+1d.net]
- char X[26]={'a',,,,,,,,,,'z'};
char* Y ="jmdjpgtmdajptwmeg"; for(int i=0;i<26;i++) { for(int j=0;j<26;j++){ if( X[i]== Y[j] ) 処理 } } 文字検索して一致したら処理みたいにしたいのだけどtrueにならなくて困ってます 一文字比較はできない??
- 957 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:23:42.38 ID:iUqnpKPOd.net]
- >>945
これまでのすべての文字が一致しているかを表すフラグ変数を使え。
- 958 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:27:59.85 ID:OsdOk4+1d.net]
- >>946
すまない理解ができん...
- 959 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:36:31.42 ID:iUqnpKPOd.net]
- >>945
==と=を間違っているとか、 大文字小文字を間違っているとか、 全角半角を間違っているとか、 理由は色々考えられる。
- 960 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:37:56.92 ID:OsdOk4+1d.net]
- >>948
==は問題なし 大文字小文字も双方出力して同じものが出力されてるのも確認した 全角半角はそこは上に同じ わけわかめ
- 961 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/24(月) 22:40:41.63 ID:zHcIYvyR0.net]
- >>945
trueにならないってどういう意味? 一度もヒットしないの?
- 962 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:42:58.10 ID:iUqnpKPOd.net]
- iとj
- 963 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:44:21.90 ID:/CxPJ7M4d.net]
- >>950
出力すると ja jb jc ..... jj jk ってのは出るのだけど==の処理に入らない
- 964 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:46:11.09 ID:iUqnpKPOd.net]
- 蝉コロン
- 965 名前:デフォルトの名無しさん (ワッチョイ df32-QK4i) [2017/07/24(月) 22:48:05.86 ID:yuT7rhOA0.net]
- 二重ループにする必要ある?
- 966 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:56:41.50 ID:iUqnpKPOd.net]
- if (...);←
- 967 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:00:33.31 ID:iUqnpKPOd.net]
- スマホ使ってるなら、テキストファイルにしてSDカードにファイルを取り込んで、ideoneに上げてくれ。
- 968 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/24(月) 23:17:23.75 ID:mYhfbnvOr.net]
- 「ス マホ使ってるなら、テキストファイルにしてS Dカードにファイルを取り込んで、 ideoneに上げてくれ」
失礼ながら、何だか復唱したくなった
- 969 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:27:02.86 ID:iUqnpKPOd.net]
- PCのテキストをスマホにコピペ出来ない情報弱者が居るから、ていねいに説明したまで。
- 970 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/24(月) 23:28:31.51 ID:zHcIYvyR0.net]
- どこにスマホの必要が?
- 971 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:30:40.46 ID:iUqnpKPOd.net]
- >>945みたいな汚いコードをパソコンで書くヤツはいないっしょ。絶対スマホだよ。
- 972 名前:デフォルトの名無しさん (スップ Sdff-7lrd) mailto:sage [2017/07/25(火) 11:24:31.23 ID:sTL1greYd.net]
- >>954
二重ループにしない方法あるのかな?? 計算量とかも考えて済むならそうしたい >>955 これでした
- 973 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/25(火) 12:18:12.57 ID:TTkvk/JeM.net]
- >>961
std::map使え。
- 974 名前:デフォルトの名無しさん (ドコグロ MM9f-efHF) mailto:sage [2017/07/25(火) 20:17:26.54 ID:KNlosRFTM.net]
- >>961
そもそも何をしたいのかよくわからんのは俺だけ?
- 975 名前:デフォルトの名無しさん (ワッチョイ 679a-z/ev) mailto:sage [2017/07/25(火) 21:23:57.34 ID:0WJY7+7Z0.net]
- >>962
文字にmap アホの典型
- 976 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/25(火) 23:21:03.65 ID:reUD2K+v0.net]
- diffとか、レーベンシュタイン距離はかるとか、めんどくさいことするでなければ、str系の関数つかうんじゃね?普通
strcmpとか、strspnとか。
- 977 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/25(火) 23:43:16.64 ID:zpZ2WILs0.net]
- std::stringも使ってあげて
- 978 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/26(水) 00:14:40.89 ID:BELJl12W0.net]
- 片方a〜zまで順序揃っているからequal_rangeで普通にイケそうだけど
- 979 名前:デフォルトの名無しさん (ドコグロ MMff-tIP3) mailto:sage [2017/07/26(水) 09:11:32.50 ID:Z6NFAYLOM.net]
- >>964
なんで?
- 980 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/26(水) 18:04:12.49 ID:n/TvQiRnd.net]
- >>965
strcmpって文字列にたいしてよね?
- 981 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/26(水) 18:57:41.27 ID:tvexcE8JM.net]
- >>945
ideone.com/Xto2xp
- 982 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/26(水) 19:15:56.17 ID:BELJl12W0.net]
- 何コレすごくキモチワルイ
- 983 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/26(水) 20:34:16.84 ID:z7xwmnWB0.net]
- >>969
ですね。このサンプルは集合をチェックしているみたいだし、strspn系統使うのが簡単だとは思うけど。 いずれにしても、Xの末尾に/0あった方が吉ですね。
- 984 名前:デフォルトの名無しさん (ワッチョイ 87e3-Y5fB) mailto:sage [2017/07/26(水) 23:02:56.23 ID:OlHQ9vUk0.net]
- >>971
なんで?
- 985 名前:デフォルトの名無しさん (スプッッ Sd2a-yaaN) mailto:sage [2017/07/27(木) 01:52:35.67 ID:dWT6t2a8d.net]
- unsigned charの値をsigned charに移したい
ただ移す値はunsignedの1バイトを4ビットずつに区切って表現される値 130って値があるのならchar型には1000と0010の値をそれぞれ1バイトとして格納したい charを見ればi番目に8、i+1番目に2が入る形 こんなことするならsprintfかな??
- 986 名前:デフォルトの名無しさん (ワッチョイ 7b09-OP0G) mailto:sage [2017/07/27(木) 01:54:43.98 ID:P9NETJAS0.net]
- ビット演算しろよ。
- 987 名前:デフォルトの名無しさん (ワッチョイ 0fe4-jgbY) mailto:sage [2017/07/27(木) 01:58:14.37 ID:Fr5QaIId0.net]
- そんな基礎的すぎる処理を人に聞くな
- 988 名前:デフォルトの名無しさん (ドコグロ MM8a-gqKx) mailto:sage [2017/07/27(木) 07:27:45.64 ID:P1js1uXhM.net]
- >>974
少なくとも > こんなことするならsprintfかな?? はないな
- 989 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/27(木) 07:34:20.55 ID:tCxrViSf0.net]
- charは8bit前提でいいのか?
- 990 名前:デフォルトの名無しさん (ワッチョイ 8a89-mrbm) mailto:sage [2017/07/27(木) 07:39:08.55 ID:IgWBj8ON0.net]
- >>978
問題を無駄にややこしくするなよ。
- 991 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/27(木) 07:40:36.50 ID:tCxrViSf0.net]
- 最近charが16bitの環境を使ったからつい
- 992 名前:デフォルトの名無しさん (ワッチョイ 6a9f-ns/O) mailto:sage [2017/07/27(木) 07:59:04.16 ID:rWyXQzMv0.net]
- 7ビットにパリティが1ビット
- 993 名前:デフォルトの名無しさん (ドコグロ MM8a-gqKx) mailto:sage [2017/07/27(木) 08:36:39.28 ID:P1js1uXhM.net]
- >>981
64bit に 8bit の ECC とか言われたらついていけなくなるんだからやめとき
- 994 名前:デフォルトの名無しさん (ブーイモ MMd6-PRKf) [2017/07/27(木) 19:19:41.26 ID:/VCkXAgyM.net]
- >>980
なにそのTIのDSP
- 995 名前:デフォルトの名無しさん (スッップ Sd8a-crdR) mailto:sage [2017/07/27(木) 19:24:23.50 ID:F0lzbPxld.net]
- >>983
良くおわかりで
- 996 名前:デフォルトの名無しさん (ペラペラ SDb6-ZO1u) mailto:sage [2017/07/28(金) 06:55:18.07 ID:mjoh45CgD.net]
- ほ
- 997 名前:デフォルトの名無しさん (ペラペラ SD2a-ZO1u) mailto:sage [2017/07/28(金) 21:15:49.27 ID:aEgnwK31D.net]
- し
- 998 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/28(金) 23:12:30.76 ID:d5LZ2kks0.net]
- の
- 999 名前:デフォルトの名無しさん (ワッチョイ 7346-PRKf) [2017/07/29(土) 00:21:09.72 ID:lS34gLdW0.net]
- 仙一
- 1000 名前:デフォルトの名無しさん (ワッチョイ 976f-ZO1u) mailto:sage [2017/07/29(土) 05:44:39.91 ID:fSkalPfO0.net]
- えっ
- 1001 名前:デフォルトの名無しさん (ワッチョイ 6a32-ZO1u) [2017/07/29(土) 07:39:00.75 ID:q+2MbaQ80.net]
- なにっ
- 1002 名前:デフォルトの名無しさん (ブーイモ MMbf-ov1m) mailto:sage [2017/07/29(土) 12:21:39.86 ID:klnxojNUM.net]
- 次スレmevius.2ch.net/test/read.cgi/tech/1501295308/
- 1003 名前:デフォルトの名無しさん (ワッチョイ 738e-PRKf) [2017/07/29(土) 16:04:09.21 ID:mj0H/MXI0.net]
- >>991
乙
- 1004 名前:デフォルトの名無しさん (ワッチョイ 976f-ZO1u) mailto:sage [2017/07/29(土) 20:09:55.91 ID:vcBWoe5a0.net]
- >>991
乙
- 1005 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:age [2017/07/29(土) 21:58:36.04 ID:Y9LsTA7nd.net]
- 埋め立てふせ
- 1006 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 21:59:10.94 ID:Y9LsTA7nd.net]
- 埋めまーす。
- 1007 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:01:20.68 ID:Y9LsTA7nd.net]
- 埋め星
- 1008 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:03:11.75 ID:Y9LsTA7nd.net]
- 埋まるちゃん
- 1009 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:04:40.24 ID:Y9LsTA7nd.net]
- 「最後に言い残したことはないか?」
- 1010 名前:デフォルトの名無しさん (オッペケ Srb3-Ibwl) mailto:sage [2017/07/29(土) 22:05:00.29 ID:E0esoNX5r.net]
- template d<0>J<0>(); // 明示的インスタンス化
- 1011 名前:デフォルトの名無しさん (アウアウウー Sa9f-Gwu1) [2017/07/29(土) 22:05:20.80 ID:46B+r2PEa.net]
- 梅ッシュ
- 1012 名前:デフォルトの名無しさん (ワッチョイ 0f4d-V1Wy) mailto:sage [2017/07/29(土) 22:06:46.19 ID:gp3BUyJn0.net]
- むしろ混乱する。
- 1013 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 120日 13時間 18分 57秒
- 1014 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|