HAMLOG プログラム開発室


新着表示
タイトル
記事No
投稿日
投稿者

Re: VC++ Run-Time Check Failure #0
589
2014/10/03(Fri) 21:57:51
JO1SIM・出島
うまくいったみたいですね。私もホッとしています。

よくよく考えると、Windowの初期からの仕様なので本来は間違えようもなく、すぐに答えが出ると思ったのですが、ネットを調べると誤った情報ばかりで、なかなかコレというまともな答えが出てこないのもにも困ったものです…。

でも、正しい答えが出ましたので、この掲示板は健全ということでしょうか!(笑)

改めて勉強になりました。

> __stdcall を指定すると extern "C"を付けても名前修飾が付くので
> 更にDEFで指定することで、名前修飾を取ることが出来ました。
> Lib作成時にこの手法で行い、このLibでLinkを行うと無事静的にLink出来ました。もちろん、Hamlog50の関数はextern "C" や__stdcall を付けたHamlog50.hを作成しての話ですが。
> やっと安心して続けられます。スタックOverなんて心配で本気になれませんでした。ではまたご指導ください。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: enum freq_tag のMAXBAND SATELLITEの件
588
2014/10/02(Thu) 21:32:08
JA9AOB 銅子
>
> あれー? なぜか間違ってたみたいです。
> 以下のとおりお願いします。
>
> enum freq_tag { 
>  X19MHZ,
>  X35MHZ, //3.5MHz~3.8MHz
>  X7_MHZ,
>  X10MHZ,
>  X14MHZ,
>  X18MHZ,
>  X21MHZ,
>  X24MHZ,
>  X28MHZ, // 28MHz ~ 29MHz
>  X50MHZ,
>  X144MHZ,
>  X430MHZ,
>  X120MHZ,
>  X240MHZ,
>  X560MHZ,
>  SATELLITE,
>  MAXBAND };

些細な事で申し訳ありません。こちらで直して使えばいいだけですが。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: enum freq_tag のMAXBAND SATELLITEの件
587
2014/10/02(Thu) 19:07:12
JG1MOU浜田
> Hamlog50の FreqPCheck()で得る結果が
> enum freq_tag の中で、SATELLITE とMAXBAND の関係がどうしても逆の結果になるような気がするのですが、如何でしょうか。
>
> 0.135 0.500 等を入れると 16 
> 145/435 435/145 等で   15 
> が返ってくるのですが。これでいいのですか???。

あれー? なぜか間違ってたみたいです。
以下のとおりお願いします。

enum freq_tag { 
 X19MHZ,
 X35MHZ, //3.5MHz~3.8MHz
 X7_MHZ,
 X10MHZ,
 X14MHZ,
 X18MHZ,
 X21MHZ,
 X24MHZ,
 X28MHZ, // 28MHz ~ 29MHz
 X50MHZ,
 X144MHZ,
 X430MHZ,
 X120MHZ,
 X240MHZ,
 X560MHZ,
 SATELLITE,
 MAXBAND };
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

enum freq_tag のMAXBAND SATELLITEの件
586
2014/10/02(Thu) 08:36:41
JA9AOB 銅子
Hamlog50の FreqPCheck()で得る結果が
enum freq_tag の中で、SATELLITE とMAXBAND の関係がどうしても逆の結果になるような気がするのですが、如何でしょうか。

0.135 0.500 等を入れると 16 
145/435 435/145 等で   15 
が返ってくるのですが。これでいいのですか???。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: VC++ Run-Time Check Failure #0
585
2014/10/02(Thu) 07:30:25
JA9AOB 銅子

>
> http://blogs.konuma.org/blog/2007/04/c_b43e/
> http://www.ne.jp/asahi/hishidama/home/tech/vcpp/dllusage.html
>
> DEFファイルを使うとか、ググるといろいろあるみたいですが、
> なんでご本家のVisual C++は、こんなにややこしいのでしょう!?
参考になりました。やはりDEFで解決でした。
後は、CString TCHAR char の変換が大変ですね。
多少重くなりますが、無事Hamlog50をVS2013VC++で使える様になりました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: VC++ Run-Time Check Failure #0
584
2014/10/02(Thu) 07:17:49
JA9AOB 銅子
__stdcall を指定すると extern "C"を付けても名前修飾が付くので
更にDEFで指定することで、名前修飾を取ることが出来ました。
Lib作成時にこの手法で行い、このLibでLinkを行うと無事静的にLink出来ました。もちろん、Hamlog50の関数はextern "C" や__stdcall を付けたHamlog50.hを作成しての話ですが。
やっと安心して続けられます。スタックOverなんて心配で本気になれませんでした。ではまたご指導ください。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: VC++ Run-Time Check Failure #0
583
2014/10/01(Wed) 21:46:21
JO1SIM・出島
でしまです。

Netには__stdcallを指定すると extern "C"が利かなくなるというような書き込みもありますね・・・。ただ、extern "C" + __stdcallの構造はwindows.hとまったく同じなので、その中にヒントがあるかもしれません。

WinGDI.h等を見ると
extern "C"
{__declspec(dllimport) int __stdcall THW_update(...)}

と等価のような書きぶりのようです。(要は「全部つける」?)
「dllimport」の部分はDEFファイルを使っての解決することと同義かと思います。

動的リンクの場合のポインタの保管ですが、私のところではHamlog50.dllについてはLoadLibraryしてからFreeLibraryするまでの間で関数のポインタを保持しておいてもうまく動いてます。(THW2VBNET.DLLの場合では都度GetProcAddressしてますが…)



> >
> > JO1SIM出島です。
> > CWでお世話になっています!!!
> 最近ご無沙汰ですね。相変わらずCWでAJA追っかけ中です。
>
> >
> > コンパイルのオプションのお話から察するに、VS2013(Express for Windows Desktop?)でWin32プラットフォームの開発状態であると思いますのでその前提でお話しします。
> >
> > 動的リンクで成功するということですので、やはり呼び出し規則だけの問題だと思います。コンパイルオプションではなく、呼び出す関数だけ…
> >
> > extern "C"
> > { int __stdcall THW_read(TThLog *,...);
> > :};
> >
> >
> > みたいな宣言ではダメでしょうか? extern "C" は関数名のみで名前
> >を解決するために必要で、__stdcallは hamlog50.h にWINAPIとして>義>してある通り、APIのコール方法を規定してます。
> 仮のLibを作る際にも同じ指定を行い、使用する際にも指定しないと、リンクの際にエラーが出ます。__stdcall を指定すると extern "C"を付けても名前修飾が付くんですね。__cdeclではこれを付けると名前修飾が付かない。
>
> > .
> > ..そういう私もDLLが呼び出せないときを想定し、動的リンクで呼び出してますが…。
> 皆さん有難うございます。
> やはり、__stdcall でしたか。だけどこれを指定すると、 extern "C"を指定しても、_XXXXX@ の名前修飾が付き解決出来ませんでした。depends で見るとLink状況が確認できますので。結局動的リンクで皆さん運用しているのですね。引数のない関数 Verチェックは問題なく 動くので引数の受け渡しの問題だと思っていたのですが。皆さん動的で行っておられるならこれで行きます。それにしてもなぜこちらだといけるのかな。
>  動的リンクの場合 ポインターを保存しても駄目だと言う事が書いてあるので使用の際にDLL 関数のポインターを新たに取得していますが、やはり一つのサブルーチン内だけで使へと言う事ですかね。初期化で一括ポインターを取得して、あちこちで使えれば、普通のリンクと同じで使いやすいのですが。皆さんアドバイス有難うございました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: VC++ Run-Time Check Failure #0
582
2014/10/01(Wed) 19:01:55
JG1MOU浜田
> やはり、__stdcall でしたか。だけどこれを指定すると、 extern "C"を指定しても、_XXXXX@ の名前修飾が付き解決出来ませんでした。depends で見るとLink状況が確認できますので。結局動的リンクで皆さん運用しているのですね。引数のない関数 Verチェックは問題なく 動くので引数の受け渡しの問題だと思っていたのですが。皆さん動的で行っておられるならこれで行きます。それにしてもなぜこちらだといけるのかな。

http://blogs.konuma.org/blog/2007/04/c_b43e/
http://www.ne.jp/asahi/hishidama/home/tech/vcpp/dllusage.html

DEFファイルを使うとか、ググるといろいろあるみたいですが、
なんでご本家のVisual C++は、こんなにややこしいのでしょう!?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: VC++ Run-Time Check Failure #0
581
2014/10/01(Wed) 06:45:49
JA9AOB 銅子
>
> JO1SIM出島です。
> CWでお世話になっています!!!
最近ご無沙汰ですね。相変わらずCWでAJA追っかけ中です。

>
> コンパイルのオプションのお話から察するに、VS2013(Express for Windows Desktop?)でWin32プラットフォームの開発状態であると思いますのでその前提でお話しします。
>
> 動的リンクで成功するということですので、やはり呼び出し規則だけの問題だと思います。コンパイルオプションではなく、呼び出す関数だけ…
>
> extern "C"
> { int __stdcall THW_read(TThLog *,...);
> :};
>
>
> みたいな宣言ではダメでしょうか? extern "C" は関数名のみで名前
>を解決するために必要で、__stdcallは hamlog50.h にWINAPIとして>義>してある通り、APIのコール方法を規定してます。
仮のLibを作る際にも同じ指定を行い、使用する際にも指定しないと、リンクの際にエラーが出ます。__stdcall を指定すると extern "C"を付けても名前修飾が付くんですね。__cdeclではこれを付けると名前修飾が付かない。

> .
> ..そういう私もDLLが呼び出せないときを想定し、動的リンクで呼び出してますが…。
皆さん有難うございます。
やはり、__stdcall でしたか。だけどこれを指定すると、 extern "C"を指定しても、_XXXXX@ の名前修飾が付き解決出来ませんでした。depends で見るとLink状況が確認できますので。結局動的リンクで皆さん運用しているのですね。引数のない関数 Verチェックは問題なく 動くので引数の受け渡しの問題だと思っていたのですが。皆さん動的で行っておられるならこれで行きます。それにしてもなぜこちらだといけるのかな。
 動的リンクの場合 ポインターを保存しても駄目だと言う事が書いてあるので使用の際にDLL 関数のポインターを新たに取得していますが、やはり一つのサブルーチン内だけで使へと言う事ですかね。初期化で一括ポインターを取得して、あちこちで使えれば、普通のリンクと同じで使いやすいのですが。皆さんアドバイス有難うございました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: Win8.1 UAC の回避方法?
580
2014/09/30(Tue) 21:49:41
JO1SIM・出島
太田OM

UACの回避ですが、基本的には引っかかっている作法を無くすのがスジだとはおもいます。Win7でひっからず、Win8で引っかかるのにはどんな違いがあるのでしょうか?大いに興味有りです。

(認識では同じレベルだと思ってたので)


> 皆さん、こんにちは。
> 最近、Win7で作成した自作ツールをWin8.1で動かすことがあります。
> その際に監理者権限にしておいても毎回UACダイアログが表示されて
> 確認を求められます。
> セキュリティの安全の為には必要な事ですが特定プログラムは回避するには
> どうすれば良いでしょうか?
> セキュリティ・ソフト、Win8.1での設定、VB2010やVB2013での回避方法など....?
>
> 皆さんはどうされていますか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop