C++相談室 part130 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/03/31(金) 08:47:49.65ID:UkLjKqcm0
次スレを立てる時は本文の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
2017/07/11(火) 23:59:49.23ID:jUUyBjmf0
>>710
charが負を表すか否かってのはどこも同じではない…?
あと最後の加算ではなくビットORってのは一体
2017/07/12(水) 00:01:29.72ID:XspFYFk7r
>>701を文盲と断定する根拠は見あたらないが
>>705がアスペなのは間違いない
2017/07/12(水) 00:04:15.65ID:WTh+eJgx0
>>712
bit演算については何も聞いてないだろ
もう一回読み直せや
式がおかしいからツッコミ入ってるだけで質問の趣旨に対しては検索しろとしか言いようがない
2017/07/12(水) 00:06:40.65ID:vUTYJqrrd
>>715
いやどう見ても「bit演算に触れてみるのに」って書いてあんじゃん
その後に暗号化については重きをおいていないレスもかかれているのに思い付きで変な暗号を考えるより〜とかレスしてんじゃん
2017/07/12(水) 00:15:27.23ID:trGyb9bp0
>>713
単に int と書いたら signed int と書いたのと同じ意味になるからよく誤解されるんだけど、
char は signed char でも unsigned char でもない固有の型なんだよ。
オーバーロードで試してみたらすぐわかる。
表現できる範囲は signed char か unsigned char のどちらかと同じではあるけど、
どちらかは処理系が選択していい。
処理系によってはオプションで変えられる場合もある。
2017/07/12(水) 00:22:30.14ID:mvEs3lAId
#include <cstdint>
unsigned char a[128];
...
unsigned char prev4bits = (a[128 - 1] >> 4);
for (int i = 0; i < 128 - 1; i++) {
unsigned char b = (a[i] >> 4);
a[i] <<= 4;
a[i] |= prev4bits;
prev4broken = b;
}
2017/07/12(水) 00:29:02.98ID:mvEs3lAId
>>718
訂正。
#define NUM_BYTES 123
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES; i++) {
unsigned char b = (a[i] >> 4);
a[i] <<= 4;
a[i] |= prev4bits;
prev4bits = b;
}
2017/07/12(水) 00:42:16.50ID:mvEs3lAId
あるいは
#define NUM_BYTES 128
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES / sizeof(int); i++) {
unsigned char b = (a[(i + 1) * sizeof(int) - 1] >> 4);
((int *)a)[i] <<= 4;
a[i * sizeof(int)] |= prev4bits;
prev4bits = b;
}
2017/07/12(水) 00:46:41.27ID:mvEs3lAId
>>720
訂正。
#define NUM_BYTES 128
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES / sizeof(unsigned int); i++) {
>unsigned char b = (a[(i + 1) * sizeof(unsigned int) - 1] >> 4);
((unsigned int *)a)[i] <<= 4;
a[i * sizeof(unsigned int)] |= prev4bits;
prev4bits = b;
}
722デフォルトの名無しさん (ワッチョイ 9f8f-gRQY)
垢版 |
2017/07/12(水) 01:19:28.71ID:L1I2nS9y0
>>710
負数を左シフトしても問題ないだろ
723デフォルトの名無しさん (ワッチョイ 9f8f-gRQY)
垢版 |
2017/07/12(水) 01:21:26.50ID:L1I2nS9y0
ああ、元の式を見てなかった
まさか足し算してるとは…
そのまま符号付きで使うことを意図してたら、確かに問題だな
2017/07/12(水) 05:56:30.63ID:HQm2gXhD0
LLVM, MISRA-Cでも決められているけど、
int, char など、処理系依存の型は使うな。
必ず、ビット数・符号の有無を明示すること

unsigned char
unsigned int32
2017/07/12(水) 06:25:07.29ID:Mf+sZV2C0
>>699
環境依存なのは、

intが4バイト
charが8ビット
負の数の表現方法

バグは

演算子の優先順位
xの右シフト
2017/07/12(水) 06:33:18.90ID:Mf+sZV2C0
>>719
元の意図とは違う結果に見える

>>721
ビッグエンディアンじゃないと違う結果
バイトアクセス可能っていう条件もつく
2017/07/12(水) 06:33:41.93ID:7DtiXvdjd
>>717
関係ないけどそれをどう捉えるべきか

・だからC++は複雑
・C++は言われるほど複雑じゃない
2017/07/12(水) 06:35:07.19ID:DgqX1C+L0
C++はそろそろbyte型が入るよ。
多分エーリアスだけどね。
2017/07/12(水) 06:38:05.27ID:Mf+sZV2C0
unsigned int x = (unsigned int)a[0] << 24 | (unsigned int)a[1] << 16 | (unsigned int)a[2] << 8 | (unsigned int)a[3];
x = x << 30 | x >> 2;

互換性と簡潔さのバランスで、こんな感じじゃない?

unsigned intが32bit
charが8bit
限定
2017/07/12(水) 06:44:26.17ID:Mf+sZV2C0
もうちょっと簡潔さ重視だと、キャスト無しで
2017/07/12(水) 06:50:51.01ID:Mf+sZV2C0
バリバリ環境依存で速度重視なら
intrinsicでAVX2やAVX512とか

インラインアセンブラはこのスレ的には反則?
2017/07/12(水) 07:30:39.07ID:9q9UgJkW0
>>724
かならずしも賛同できない、必要なときに unsigned/signed を指定すればいいのでは?
2017/07/12(水) 07:31:30.65ID:DgqX1C+L0
cstdintを使おう。
2017/07/12(水) 07:31:53.68ID:9q9UgJkW0
>>731
インラインで自由にかけてこそのC/C++ だと思うんだが、最近は嫌われるみたいだね
2017/07/12(水) 07:59:55.87ID:SNfdy8Tor
MISRAさんパネェな
for (int = 0;i <= n; i++) // きんし!
X operator ++(int); // きんし!
int main() {} // きんし!
2017/07/12(水) 08:23:54.55ID:vUTYJqrrd
>>729
あとの問題はあれだな
応用利かせるなら128文字が129文字になったときにどうするかなどの規約的な話にも対応できるようなコードにする方が
後にちに勉強になりそう
2017/07/12(水) 08:47:06.94ID:WTh+eJgx0
バイト単位で回転させるだけならstd::rotateやstd::copyでいい
2017/07/12(水) 10:52:11.36ID:QOR+1nCC0
自作クラスで他の自作クラスのインスタンスのコレクションを返すメソッドを追加したい
のですがクラス設計ってどうすればいいでしょうか??ガチガチの最適化?まではしなくていいので
普通ぐらいの最適化?ぐらいでOKです。

public:
 std::shared_ptr<std::vector<std::shared_ptr<CMyClass>>> EnumeateMyClasses()

こんな感じで設計すればいいでしょうか?
C#なら
 IEnumerable<CMyClass> EnumeateMyClasses()
とかにするんですが
2017/07/12(水) 11:12:35.14ID:DgqX1C+L0
返したものをどこら辺まで使うんやろ。
たらい回しにするんだったら、スマポでも良いけど、一時でやるんだったらこんすと参照でも良いし。
でも、内部で持ってるものを外でたらい回しにされるのは気持ち悪いな。
2017/07/12(水) 11:30:49.11ID:QOR+1nCC0
Enumerateメソッドは内部ではインスタンス作りますが、内部でその参照を保持することは
ないですね、メソッド内で作って呼び出し元に返すだけです。
どれくらいたらい回すかは使う側次第です。

>たらい回しにするんだったら、スマポでも良いけど、一時でやるんだったらこんすと参照でも良いし
こんすと参照とかもあるんですか・・
まぁ、先ほども書いたようにC++に深入りすると死にそうなので、
とりあえず、C#erの人がちょっと毛が生えた程度でC++を使うレベルでいいので。
2017/07/12(水) 11:34:33.27ID:DgqX1C+L0
>>740
どう伝えればいいかわかんない。
識者求。
2017/07/12(水) 12:51:39.26ID:WTh+eJgx0
>>738
それでもいいと思うけど
コンパイラの最適化が期待できる状況ならvectorをshared_ptrで包む必要は無い
2017/07/12(水) 13:59:49.69ID:HO+tEfFId
うん、ただvectorを返せばいいと思うけど
2017/07/12(水) 14:16:55.03ID:QOR+1nCC0
あれ、そうなんですか??
ムズイな・・
vector自体を返しても、要素自体はコピー?されないってことですかね?
ぐぉぉぉ。
2017/07/12(水) 14:31:08.44ID:vUTYJqrrd
なんでキャラ配列では終端文字を意識して
他の型の配列では意識しないんだぜ
2017/07/12(水) 14:43:06.63ID:trGyb9bp0
>>744
RVO やムーブによってコピーが抑制される。

従来の RVO は「してもよい」という、
省略による最適化を許す形で規定されていたが C++17 からは必須になってるので、
条件がそろえば確実にコピーはされないことが保証される。
2017/07/12(水) 15:24:37.86ID:HO+tEfFId
>>744
そもそも、
もともと存在しているvectorを返すのかメソッド内で構築したvectorを返すのか、
がはっきりしてない。
後者だったら参照とかでなく単にvectorを返せばいい。
2017/07/12(水) 19:23:12.64ID:WTh+eJgx0
>>744
C++で値の代入にはコピーとムーブの2種類がある
ムーブは代入先に中身を移譲する機能
ムーブ元はムーブ前と後とで同一であるとは保障されない
具体的には定義したムーブコンストラクタとムーブ代入演算子に記述したコードが実行される


vectorの場合ムーブされると内部の配列のポインタを代入先のvectorの配列のポインタに付け替える
こうすることで中身をコピーせずポインタの代入だけで他のvectorに移し変えることができる

ローカル変数など関数のスコープを抜けたら自動的に開放されて二度と使われない変数を戻り値にした場合、コピーしているように見えても自動的ムーブが選ばれている
2017/07/12(水) 21:17:08.54ID:AocYxtQtM
>>748
最後嘘じゃない?
RVOが効くケースでは直接構築が優先だよね?
2017/07/12(水) 22:04:13.96ID:WTh+eJgx0
>>749
正しくは変数の初期化の式で呼び出した場合は直接構築になりそれ以外ではムーブになるでした
2017/07/12(水) 22:10:13.78ID:SNfdy8Tor
>>750
それは規格のどこに書いてあるのですか?
2017/07/12(水) 22:34:27.41ID:WTh+eJgx0
>>751
規格厨じゃないから知りません
2017/07/12(水) 22:35:41.04ID:SNfdy8Tor
なるほどこうやってデタラメが吹聴されて世の中が嘘だらけになるのだな
2017/07/12(水) 22:42:26.18ID:WTh+eJgx0
>>753
何の引用も無しに書いた文章なんて嘘まみれに決まってるだろ
2017/07/12(水) 23:21:39.63ID:vUTYJqrrd
上の方にあるbitいじりの件ってわざわざint型に演算していれ直す必要もなくね?って思い始めた
charの先頭文字をint*に直して操作するのじゃダメなんか??
2017/07/12(水) 23:36:27.73ID:cPl7Kb1c0
>>755
何言ってるか分からないのでコードで頼む。
ちなみに、アラインメントとかは理解してる?
2017/07/13(木) 06:46:33.90ID:lX8cJUTX0
>>755
>>721 >>726
2017/07/13(木) 06:48:27.63ID:Yj3E6QQW0
>>699
C++の規格ではいつまでたってもビットローテーション入れてこないからな。
だが、ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、
両方作って確認した方がいいぞ。
バレルシフタ載ってるMPUじゃないとビットシフトが結構重かったりする
2017/07/13(木) 07:03:23.04ID:lX8cJUTX0
> ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、

意味不明
ローテーションは後半だぞ

前半はただ単にintにロードしてるだけ
なぜかビッグエンディアン形式で
環境はSHか何か?
2017/07/13(木) 07:05:59.44ID:lX8cJUTX0
C++にローテーションなんか入れなくて良い
使う機会も少ないし、簡単にC++に表記できるし

他に増やしたいものは色々ある
そっち優先で
2017/07/13(木) 08:50:42.40ID:g1X/OFssd
まるで開発資源が足りてないかのような言い分
2017/07/13(木) 12:50:51.77ID:EiZFhTPMM
理解するための俺の頭の資源は有限
2017/07/13(木) 13:23:34.41ID:b1PvI/zld
>>761
言語の機能として、新たな演算子を新たな文字で作るのは無駄だと

標準ライブラリに入れるっていうならどうぞご自由に
2017/07/13(木) 19:02:52.17ID:oXf/mLI10
boostのdynamic_bitsetにバイト列との相互変換機能とバイトオーダーを切り替えられる機能と範囲を切り出せる機能を追加したものを標準に入れるべき
2017/07/13(木) 19:48:54.11ID:XkT7ManS0
FFTで使うビット逆転も仲間に入れてよ
2017/07/13(木) 20:46:05.57ID:lX8cJUTX0
>>765
ビット演算のテクニックの基本とかに載ってそう
2017/07/13(木) 21:06:39.82ID:RqiuYpPc0
ファストフーリエトランスファーの良い参考文献ないっすかね
2017/07/13(木) 21:20:53.50ID:lX8cJUTX0
おれ専門家だから何でも聞いて
2017/07/13(木) 21:21:33.62ID:anRp6w5D0
まずは Wikipedia から
2017/07/13(木) 21:25:32.45ID:NDMOLt7F0
>>767
https://www.amazon.co.jp/dp/4789830292/
2017/07/13(木) 21:27:47.04ID:lX8cJUTX0
そうだね
基礎から教えるつもりはない

応用、テクニック、実装方法、高速化、AVX512の使い方、キャッシュサイズによる最適化、HDDを使った場合の並べかえ方法、...
など具体的に聞いてくれれば
2017/07/13(木) 21:34:36.15ID:RqiuYpPc0
やりたいことはリアルタイムオシロですかね
ビジュアル的に表示出来ることから始めて
最終的にはArduinoで周波数検波器作りたいかも
2017/07/13(木) 21:38:11.93ID:RqiuYpPc0
>>770
ほしいものリストに追加しますた
ありがとうございますた
774デフォルトの名無しさん (ワッチョイ 321b-HOJV)
垢版 |
2017/07/14(金) 06:45:45.62ID:JUkrjA2t0
>>759
バレルシフタが何かわからんアホはすっこんでろ
2017/07/14(金) 07:04:53.46ID:dCevqkg20
>>758の真ん中のブロック、意味がわかるなら解説よろしく
2017/07/15(土) 13:45:59.81ID:fnbVxk0dd
VBから読み出せるdllを作るときの注意点ってある??
2017/07/15(土) 14:17:18.00ID:u0zSb1i50
メモリ管理
2017/07/15(土) 15:27:55.38ID:GMW24mlhd
>>776
__stdcall呼び出しにする
ってかどのVB?
2017/07/15(土) 17:14:07.14ID:fnbVxk0dd
>>778
vb6.0っていう化石
2017/07/15(土) 17:26:21.05ID:GMW24mlhd
>>779
ふーん、なら
VB側のByRef x As Variant は、C++側で
Variant* pV とVariant& x のどっちでも受けられる
これ豆な
2017/07/15(土) 17:33:23.30ID:GMW24mlhd
>>779
あと、文字列はBSTRで受けるとなぜか文字化けすることがある。
Variantで受けてbstrValメンバを取り出すと大丈夫。(もしくはpbstrValメンバ)
不思議だ。
2017/07/16(日) 16:02:40.33ID:o1PqrRM30
テンプレートの部分特殊化について質問っす
http://ideone.com/Rz72oc
この例なんで曖昧になるですかね?
下が選ばれると思ったんですが
783デフォルトの名無しさん (ワッチョイ 955a-qt4g)
垢版 |
2017/07/16(日) 16:21:43.57ID:CxpOV7IS0
const が付いてるからじゃね
2017/07/16(日) 17:06:50.01ID:o1PqrRM30
>>783
constなintなのにconst T&のconst関係なくない?
それにT(&)[4]の方がより細かい気がする
785デフォルトの名無しさん (ワッチョイ 955a-qt4g)
垢版 |
2017/07/16(日) 18:31:12.78ID:CxpOV7IS0
struct A<T (&)[4]> は、
struct A<const T &> の特殊化じゃないんじゃね?
786デフォルトの名無しさん (ワッチョイ f146-I8+U)
垢版 |
2017/07/16(日) 18:46:15.15ID:TI5o59vg0
テンプレート引数型を明示してるのに、その型に一意にマッチする定義がないからでしょ。
どっちが近いかを決定するような優先順位の規定がないので ambiguous になる。
compiler からしてみたら仕様がなければ勝手に判断できないって話。
2017/07/16(日) 18:49:24.15ID:8ivnKhmqd
int (&)[4]の左側にconst付ける意味あんの?
2017/07/16(日) 19:11:25.11ID:0XlWr73/r
>どっちが近いかを決定するような優先順位の規定がない
何故か規格を読まない奴ほど自信満々に嘘をつく法則
2017/07/16(日) 19:21:41.99ID:0XlWr73/r
規格の8.3.4p1により配列のconstは要素のconstと等価なので、A<int const (&)[4]>はA<T const &>に適合する
2017/07/16(日) 19:35:17.35ID:F/PpVxkG0
C++14まででいいので全文日本語の規格書くれよ
2017/07/16(日) 20:01:11.52ID:o1PqrRM30
優先順位ルールよくわからんっす
2017/07/16(日) 20:21:10.26ID:5frVCgipd
>>781
vbやったことないからなるほどよくわからん...
vb6.0についてとか全然書籍とかもないから本当に困る
2017/07/16(日) 20:26:00.20ID:F/PpVxkG0
古代言語の解読は自己責任だ
細かいこと考えたくなければ標準入出力で繋げばいい
2017/07/16(日) 20:41:20.06ID:tihnLl5v0
>>790
JIS に働きかけてくれ
795デフォルトの名無しさん (ワッチョイ f146-I8+U)
垢版 |
2017/07/16(日) 21:06:56.01ID:TI5o59vg0
>>789
ありがとう、探してくれて。
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
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
2017/07/17(月) 09:28:01.08ID:ESb998SRr
>エンディアンは気にしないw
物は言い様で、本当は触ったことが無いのであった
AIXやSPARC使いに「インテル能乙」と揶揄されても仕方ない
2017/07/17(月) 09:43:52.37ID:WTwWKmZ80
>>798
1つの方法を示しただけで、必要なら気にしたら良いってレベルの話なんだけどな
質問者も完全な解決策ではなくアイディアを求めているだろうし
2017/07/17(月) 09:52:45.96ID:NM7AtMtK0
エクスプレッションテンプレートを使った二項演算子のオーバーロードって
・グローバル空間全体
・特定の名前空間で定義して、使う部分ではその名前空間を指定
のどちらかになるということになりますか?
つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?
2017/07/17(月) 22:32:17.08ID:ESb998SRr
通常のクラスの例であるstd::complex<>は二項演算子を使う部分で名前空間など指定しなくても良いし
そのオーバーロード関数はクラスではなくstd名前空間に限定している
式テンプレートでそれ以上のことが必要なのだろうか
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で条件に合わないものを弾くなりしないといけない
2017/07/18(火) 12:37:46.49ID:2CukONSS0
訂正
ETだから参照でないといかんね
operator +(T &&t, U &&u)
2017/07/18(火) 12:44:00.00ID:VOd4+Wz60
なんとなくわかりました
やってみます
805デフォルトの名無しさん (ブーイモ MMfd-I8+U)
垢版 |
2017/07/18(火) 12:53:11.11ID:CTdksPCiM
式テンプレート作るのと、右辺値参照モノをしっかり作り込むのとどちらが良さげ?
2017/07/18(火) 14:06:03.25ID:C2L8wOjPd
上でVB6.0について質問してるものだけどさらに重ねて質問させてください
VB6.0→C++に通信してる箇所が存在していてそこがstring→char※になってる
これって文字化けしないの??
2017/07/18(火) 15:57:42.98ID:LmZYlO3Ud
>>806
さあ?
"まみむめも"でも試しに入力してみれば?
808デフォルトの名無しさん (アウアウエー Sa66-C5HA)
垢版 |
2017/07/19(水) 07:57:29.52ID:4WYjcaP8a
>>806
コード内で文字列生成して表示したらエンコードが違って文字化けとかあるけど、外部から文字列受け取ってただ表示するだけならエンコードとか関係ないから問題は無い。
(ただのバイト列)
外部から文字列受け取ってそれを加工するとかだと問題ある時はあるが。
2017/07/19(水) 14:22:33.44ID:cdBaS5I50
804ですが
>>802
>名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義する
これでできました。
ありがとうございます。
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);
}
2017/07/19(水) 20:49:13.06ID:MaD+cEa1d
>>810
importとexportを間違ってるよ。
2017/07/19(水) 21:54:41.55ID:ogeQAtV7d
>>811
あ ごめん
そこはexportってしてるから問題ない
スマホで書き込む際に間違えただけです
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況