Visual Studio 2010 Part21
ノ ゚.ノヽ , /} ...
,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. ::: 2010 はスルーで 2012 とか 2013 とか 2008はCE機があるので現役。
2010はPro、2013はexpressなのでその使い分けくらい。 それはIronPython
PTVS自身は処理系入ってないからそれも含めて扱えるみたいね。 2010 expressでひとつのプロジェクトで32bitと64bitのexeを
同時に作成する設定って無いでしょうか? 1つのプロジェクトをソリューション内に2つ取り込んで、片方を32、もう片方を64に設定 2010のexpressでそれできたっけ?
普通にx64とWIN32作ってバッチビルドでいいような?
expressだとこれもきついんだっけ? 2010のリリースビルドではSQLGetInstalledDriversがリンクエラーを起こすって既知の問題ですか? 2010のVCでstrtok()てマルチスレッドで使って大丈夫なのかな? >>23
http://msdn.microsoft.com/ja-jp/library/2c8d19sb(v=vs.100).aspx
>スレッドのローカルの静的変数を使用して、文字列からトークンを取り出します。 このため、複数のスレッドでこれらの関数を同時に呼び出しても、問題が発生することはありません。 Expressのテキストエディタでショートカットキーを使うと「指定されたキーはディレクトリ内に存在しませんでした」というエラーが出るのですが何が原因でしょうか
ショートカットキーの割り当てはされてるしフォームのデザイン画面では同じ操作をしてもエラーは出ません すいません、ショートカットキー関係なかった
メニューから選んでも同じエラーでした varで型推論させてるコードを、型推論した結果に一括置換するアドインはありませんでしょうか?
var moji = "もじ";
↓
string moji = "もじ"; 無視していいのかな・・・?
>cl /MD z.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
z.c
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
/out:z.exe
z.obj
MSVCRT.lib(cinitexe.obj) : warning LNK4254: section '.CRT' (40000040) merged into '.data' (C0000040) with different attributes
z.cの中身 (何もしない状態)
void main(){} >>31
VC2010でもmsvcr100.dllじゃなくmsvcrt.dll要求の実行ファイル作れるようになったよ
link.exeをVC2005/2008の物に変えればWin2000でも実行できるファイルが出力される
VC2002/2003はダメだった >>33
VC2005(?)以降のcl.exeが出力するlink.exeに渡す設定ファイルがBOM付きutf-8になってる
古いlink.exeは「utf-8のBOMを識別出来ずにエラー」 or 「/errorReport:〜なんぞ知らんのエラー」のどちらかで使えず
cl.exeでコンパイル → linkのエラーで止まる → 出来上がってる〜.objをlink
これで可能 VS2010に拡張機能マネージャからリフレクタお試し版を入れたら、
デバッグのブレークで止まらなくなってしまいました
リビルドとリフレクタアンインストールはダメでした
exeと同じ場所にpboはちゃんとあります
元に戻すためにはどしたらいいでしょうか クラスを切り替えるとクラスウィザードが突然消えてしまいます。
リソースエディタ右クリックでの「関数の追加」もできません。
解決策知ってる人はいませんか? Windowsのエクスプローラー上でcsファイルを作ったのですが、
それをvisual studioで認識させるにはフォルダからドラッグ等しなければいけないんでしょうか?
勝手にフォルダ内のファイル追加してくれるかと思ってたんですが プロジェクトの作業ディレクトリ下にあるからって
必要なファイルか不要なファイルかを人間の意志を無視して機械が勝手に判断しないってことだよ でも、ワンボタンで取り込んでくれる仕組みあるんでしょう? Visual Studio 2010の詳しいマニュアルなどはないのでしょうか? シリアル通信をして、マイコンからデータをとりこみたいのですが上手くいきません。詳しい手順など教えて頂けませんか /)
///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ / >>44
win32api COMポート 通信 とかで検索したらいいよ
comポート 通信 c# だとC#での例が出てくる google先生に聞きな。聞き方わからないなら諦めろ ワークフロー機能を使って開発している人います?
これって、申請・承認がPC間でできるグループウェアのようなアプリを
開発できる機能だと思っていたのだけど違いますかね?
アクティビティという部品を画面に配置していくのですが、一つ一つの機能が
VBのIF文のようなすごく低レベルなもので、申請案件の管理や承認状況の管理など
グループウェアらしい高次の機能が見当たりません。 VC 2010で作った関数なんだけど画像データの処理を高速化しようとして
double -> int に変えたら640x480の画像処理がdoubleだと108ms、intだと
125ms掛かります???
コーディングは全く同じdoubleがintになってるだけ、内容はよくある畳み込みです。
なぜint版の方が遅くなるんでしょうか? 該当部のdouble版のコードとint版のコードを見てみないと何とも言えんな ググるとLOGICAL-PARADOX.ORGというサイトのdoubleはintに比べて本当に遅いか?というタイトルのページで(サイトは死んでてグーグルキャッシュからしか見えんが)
C#のdoubleとintの処理速度比較してて加算と除算でdoubleのほうが速いという結果にはなってるけどソースコードはもう見れんし確認のしようもない IntelのCPUは浮動小数点演算に力を注いでいるらしいからそれで速いのかもしれんし分からん その後、色々やってみたところ以下の条件が判明したようです。
・Debugモードではint版の方が速い
・コーディングを修正して「中途半端な人力最適化」だとintt版の方が速い
・値がループに従って変化する変数の数が一定数以下だとintt版の方が速い
要するに全く同じコーディングで変数の型だけが違うと、ある程度複雑な処理は
コンパイラの最適化によって、かえって遅くなる、ことが判明しました。 >>59
上にもあるけどコードとコンパイル結果がないと分からない
例えば、doubleをintに変えた「だけ」というけど、本当なのか。
これは簡単ではない。中途半端に変えたのならdouble→int→doubleの変換が入って
遅くなることが考えられるし >>60
あなたの意見は至極尤もですが、いかんせんプログラマとしての知識が不足しています。
私はdoubleからintに変更したと言ったはずですよ?
その場合、速度に悪影響を与える原因としてint->double->intはあり得ても、あなたが
言うようなその逆はあり得ないはずです。
もう少し経験を積んでから他人に助言した方がいいでしょう。 >>61
double sample; -> int sample;と言う事か?
それとも(int)sampleか?
関連する関数の引数や演算で使用される他の変数もdoubleからintへ変更したのか?
ソース上げれば一発なのになぜしない? 流石はプログラム板です。枝葉末節に拘りますね?
しかし、もう一度言いますが、私はdoubleをintに変えたと言いました。
つまり、新しいコードにはdoubleという記述は全くないのです。
気になるかもしれませんがfloatもありませんよ? じゃ後はソースをideoneにでもあげるしかないな doubleでの処理がintでの処理より高速という状況を確認するための状況を再現するコードをゼロから書く気がある奴がいるとは思えない まあ、わざわざ再現してあげたいとは俺も思わんけど、VCの最適化がへちょいのには
結構被害を受けてるな。
さすがにdoubleよりintが遅くなったという経験はないけど、必死で最適化したつもりでも
なぜかポインタを駆使すると配列より遅くなるとかは稀によくある。
最近は64bitの仕事が多いんで滅多なことではお目に掛かれなくなったが32bitのころは
結構苦しめられた思い出があるな。 Pentium以降のCPUだと、floatが速いってのは割とよく聞く話だよな SSE2の128bitレジスタで、double型2つが並列計算されているとかじゃないよな ソースコード出せってのは所謂「おま環」の可能性もあるからって意味で
VSの所為だけには出来んって話であって Async
使いたいのですが、認識されません。
どうしたら認識しますか? NOTEPAD++使ってる人いない?
自動インデントめちゃくちゃ便利なんだが
これと同じにする設定方法無いかな? >>52
マジで理由分からないの?
グラフィックスボードが、
今は浮動小数点アクセラレーターの組み込みだからだと思うよ
DirectXなりXNAなりいじってりゃ分かるだろ プログラミング的にはシェーダーが、直接、浮動小数点をぶち込む >>63
それは多分、内部のシェーダーの時点で浮動小数点使っているから 参考までに
ttp://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%80%E3%83%BC
シェーダ どんな描画関数を使ってるのか知らないけど
今の環境でint型引数の描画関数はシェーダの所で
オーバーヘッドがかかるよ ttp://ja.wikipedia.org/wiki/GPGPU
GPGPU ところでNASさん、物理板に出張してるのはなんでなん? 万有引力から物理に嵌ってね
結局、球、って、言いたいだけみたいだけど
球の方程式
k 定数行列 xn n次元座標 r 半径(直線距離)
r^2 = k Sn xn^2 = k (x0^2 + x1^2 + ・・・ + xn^2)
物理学って、要するに、これだけみたいな感じに学んだ
球をごにょごにょすると面白いらしい 2010のバージョンだと製品登録は出来なくなったのでしょうか?
以前、visualstudio2010 EXPRESS C++をインストールしてから30日経ってしまい起動すら出来ないので、ダイアログに出てくる登録ページに行くのですが、リンク先のアカウントログインしたあと、Microsoftのホームページに行ってしまいます。
ブラウザはIEとChromeで試しましたがどちらも同じです。IEについては、バージョンが11で知恵袋などに書かれていたアドオンXMD?というものはありませんでした。
ネットでもググり尽くすほど調べましたが、症状は変わりませんでした。
また、再インストールも数回実施しましたが、意味なしです。
どなたか、アドバイスいただけると助かります。 >>85
https://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs.aspx
このページの下の方にある、
Visual Studio 2010 Express All-in-One ISOというのをDLして、Daemon ToolsとかのDVDマウントソフト使って仮想ドライブに
マウント、起動すれば、オフラインでインストール出来るよ
登録認証も必要無いから普通に使える
仮想エミュレータドライブの使い方がわからなければ、DVDに焼いてそっから起動してもいい >>86
> インストール完了後、この製品を30 日間ご試用いただけます。
> 30日以降も引き続き利用する場合は、
> 無償のプロダクトキーを入手してご登録いただく必要があります。 >>87
ttp://helal7star.blogspot.jp/2014/04/microsoft-visual-studio-2010-express_12.html
適当にググったら出てきた
商用に使わないんだったら誰も気にかけない・・・ >>85の者です。
みなさんレスありがとうございます。
製品登録はやはりwebからはできなかったので、
>>88を試してみたら、うまくいきました。
こんな有力なサイトがあったなんて知らなかったです。もっと早く知ってればよかった…
みなさんには感謝します。ありがとうございました^ - ^ ライセンス違反の開発環境で作成されたプログラムってフラグが付き纏う訳だなw VC++ 4.0なんかはマイクロソフト公認でKEY配布してるけどな
元々無料で使えてたのはサポートしないなら公式にKEY配布すればいいのにと思うけど
セキュリティーの甘いアプリケーションばら撒かれたらマイクロソフト自体が潰れちゃうからそれも出来ないんだろう
で、win vista/7以上で動くvisual studio2013を無料公開した >>93
VC4.0のが配布されてるの?eMbeddedでなく? >>85さんと同じく、VC++2010 の登録キー取得ができず困っておりましたが、
皆さんのお陰で解決できました。ありがd >>96
マイクロソフトのシリアル発行サイトが復帰出来るまでの繋ぎと考えておきましょう
無論復活すればちゃんと発行してもらいましょう すまないが、分る人いれば教えて下さい。
画面にDataBindされているtextbox、数量・単価・金額があり、
数量と単価のValidatedで金額の値を下のようにセットしています。
金額txtbox.text = 数量*単価
DirectCast(○○BindingSource.Current, DataRowView).Row("金額") = 数量*単価
Me.Validate()
データバインドの中を直接変更して表示も変えるにはこの方法が一般的でしょうか?
テキストの値だけ変更しても中身は変わらず、更新もされなかったのでどうしたものかと。 >>98
標準的な以下の流れで更新されますよ
全部入力が終わったら Me.Validate()
BindingSource を EndEdit
DB更新(TableAdapter なら Update) 2010(C#)のバグに遭遇した
あるクラスのメンバーの名前を変更したら
まったく無関係のxamlの要素の属性名まで変更された
class Hoge
{
public string Name{} ←これを変えたら、xaml内のName属性が全部変更されやがった
} >>101
CD-R欲しければメールされたし
katayama.hirofumi.mz@gmail.com >>101
セコい真似してないで、開発者ならさっさとMSDN入って
マジもんのVisualStudio使いなよ
年間数万円なんて大した負担じゃないだろ ダウンロードすらできなくなったので、もうVisual Studio 2010 は使うなということですかね。
リリースから10年くらいはアクセスできるようにはして欲しいんですが、サイクル早いですね^^; 5年も経ったら十分古いだろ
大学通うのだって4年間だぞ
それより1年も長い5年とか思いっきり過去じゃねえか >>105
MSDN入れば100年前だったとしても使える。
用途に制限がある場合があるので、入る前に約款は自分で調べてること。 >>107
なるほど、手続きすれば Visual Sudio 2010 もまだダウンロードして条件付きで利用できるということですね。
情報ありがとうございます。 むしろMSDN入って2010にしがみついてる奴がこのスレになんの用があるのか でもExpressなんだから堂々と商用開発してるわけではないよな?
7以上なら2013Communityのほうがいいし
たぶんXPなんだろうけど IronPythonやろうとしたら、必要な.NETがXPに非対応で頭来たわ
なんでわざわざXPで動作できなくするのかね
動作できなくする方が手間がかかるだろうに
サポートしなくていいから動作は続けさせろよ
長く使ったPCのOS変更は大変なんだよ vista以降に実装されてるAPI使うだけで簡単に使えなくなるけど
わざわざxpのためにそこだけ独自実装するほうが手間だわ
そんなことプログラム作ってるなら常識だろ
スクリプトだけ書いてるやつはそんなこと気にしたこともないか 別に使えなくしてるんじゃないだろ。
使えなくなっちゃうんだよ。
それを、ワザワザ手間を掛けて意味ないだろ使えるようにする事も「サポート」と言うのでは? スマン
ご丁寧にインスコを跳ねるよう作ってあるのを見て
功労者であるXPへのあまりの仕打ちに我を見失った
OSを入れ直すと二度とネットにつながらない気がするので別PCを買うか >>86に書かれてるISOでMicrosoft Visual Basic 2010 Expressインストールしたんですが
日本語化はどうすればいいのでしょうか?
多分ランゲージファイル的なもの入れると思うんですがまだDL可能でしょうか?
ご存知の方居ましたら教えてください。 >>117
ありがとうございます。
リンク先のHPにあるリンクから日本語版ISODL出来ますね。
それ使ってインストールし直します。 .net4.5以上がインストールされた環境で、visual studio2010を起動したとき、.NET4.5でしか使えないものと.NET4.0でも使えるものをどのように区別しているのでしょうか?
おそらく、.NET4.0でも使える物しか選べないようになっていると思うのですが、いまいちわからないのです。 プロジェクトのプロパティのアプリケーションで対象のフレームワークってあるでしょ
それのことかな? >120
ありがとうございます。
それなのですが、vs2010では「.net framework4」しか選べません。(4.5以降が後から出たので当たり前ですが)
少し調べた限りだと、vs2010では「.net framework4」までしか対応していないとのことでしたが、
「.net framework4.5」以上がインストールされた環境で、vs2010がどのように「.net framework4.5」と「.net framework4.0」の区別をつけているかが知りたいのです。 続きです。
区別をつけていないのであれば、開発環境で「.net Framework4.5」以上が入った環境でvs2010を使って
「.net Framework4.5」でしか使えないクラスをなどを利用して開発を行った場合、
「.net Framework4.0」
までしか入っていない環境では動かないのではないか?といった疑問があるためです。
おそらくvs2010側で何らかの制御をかけているのでは?と思っているのですが、それがわかりません。
区別をつけていないのであれば、開発環境で「.net Framework4.5」以上が入った環境でvs2010を使って
「.net Framework4.5」でしか使えないクラスを名度を利用して開発を行った場合、「.net Framework4.0」
までしか入っていない環境では動かないのではないか?といった疑問があるためエス。
おそらくvs2010側で何らかの制御をかけているのでは?と思っているのですが、それがわかりません。 👀
Rock54: Caution(BBR-MD5:558464d2692f088d1d43d68e7664e878) いや、、2010で4.5の機能使ったコードはビルドできないでしょ ターゲットの.NETframeworkのバージョンを選択して開発する仕組みだから4.0で4.5のライブラリーが使えたりする事はない。 ありがとうございます。
それが何故なのかわからないのです。
.net framework4.5で拡張されたものは
visualstudio自体の機能と密接に組ついているため、
vs2010では対応できず、コンパイルできないと言うことでしょうか? >125
ありがとうございます。
そこなのですが、「.net framework4.0」と「.net framework4.5」の違いを
vs2010がどのように判断しているかが知りたいたいのです。
例えばクラスの属性にバージョン情報があるからそこを見ているとか。
そもそもインターフェイスが同じだから区別する必要がないとか。
vs2012が判別しているので同じ仕組みだとは思うのですが、何をもって判断しているかがわかりません。。
先に出ていたvs2010がどうして区別が出来るのか。そもそもする必要がないのか、していないのか。といった事が知りたいことです。 フレームワークの属性にバージョン番号があるからそこを見ているんだろう そういや.NET4.0から4.5.1までのサポートが来年1月までなんだよな
VS2010使って4.0でアプリケーション作っているところ最悪だわな Vistaもそろそろ終わるしな
7以降使ってるなら2010使う理由が無くなる 7以降をクリーンインストールする気力がないのでXPのまま
2010が最後の砦 現在、VS2010を使用しております
ダウンロードしたソースを参照し、リソースビューでリソースを見ようとしたところ
以下の様なエラーが出てしまうのですが、何か設定がおかしいのでしょうか?
なお、ビルド自体は問題なく行えます。
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\prsht.h(0)
error RC2247 : SYMBOL name too long
なお、ぐぐったところ、以下のページにx86モードにしろと書いてあるのですが
Projectのプロパティ「デバッグ」の「環境」に「x86」と入れても変わりませんでした
social.msdn.microsoft.com/Forums/ie/ja-JP/4bf67757-dbf4-4207-b5f7-cedccabfa176/unresolved-error-rc2247-symbol-name-too-long?forum=visualstudiogeneral
どなたかご教示下さいますようお願い致します そもそもその解決策のページのやつリソースビューのエラーじゃないぽいし意味ないんじゃね >>134
どうもRecEditというツールで作ったらしいのでそうかもしれません
長そうなのをチェックしてみます
ありがとうございました。 >>101
Visual Studio Express 2010
http://download.microsoft.com/download/1/e/5/1e5f1c0a-0d5b-426a-a603-1798b951ddae/VS2010Express1.iso
ttp://download.microsoft.com/download/d/a/3/da3a3b50-03eb-4191-86db-a2334c2ddb0a/VS2010ExpressCHT.iso
ttp://download.microsoft.com/download/5/c/1/5c156922-ca10-49d8-b7e7-9bf092c3b6eb/VS2010ExpressCHS.iso
[Product Key]が空白なんでお察しください。 >>136
持っているのはProfessionalなんですが
Ultimateなら可能ということでしょうか? VS2015コミュニチっての入れた。
今全部タダなのねw ちとリンカエラーでよくわからんので、詳しい方教えて下さい
func.cppで以下のように定義し、使用(str,wave〜depthまでを設定)
bool debug_sa_play_sound;
bool debug_sa_play_sound_flg;
namespace sa{
u16 itemcnt; //XMLSAファイル内のアイテム総数
u16 counter; //カウンター用変数
char str[ID_XMLSA_MAX][ID_XMLSA_MAX_STRLEN];
char wavefile[ID_XMLSA_MAX][ID_XMLSA_MAX_STRLEN];
u32 color[ID_XMLSA_MAX];
bool flg[ID_XMLSA_MAX];
char func[ID_XMLSA_MAX][ID_XML_MAX_STRLEN];
u32 group[ID_XMLSA_MAX];
u32 depth[ID_XMLSA_MAX];
}
debug.hで以下のように宣言
extern bool debug_sa_play_sound;
extern bool debug_sa_play_sound_flg;
namespace sa{
extern u16 itemcnt; //XMLSAファイル内のアイテム総数
extern u16 counter; //カウンター用変数
extern char str[ID_XMLSA_MAX][ID_XMLSA_MAX_STRLEN];
extern char wavefile[ID_XMLSA_MAX][ID_XMLSA_MAX_STRLEN];
extern u32 color[ID_XMLSA_MAX];
extern bool flg[ID_XMLSA_MAX];
extern char func[ID_XMLSA_MAX][ID_XML_MAX_STRLEN];
extern u32 group[ID_XMLSA_MAX];
extern u32 depth[ID_XMLSA_MAX];
} debug.cppの関数内部で
if(debug_sa_play_sound_flg){ // alert.xml読込中じゃないか?
// for(int cnt = 0; cnt < sa::itemcnt; cnt++){
// if(sa::flg[cnt]){
// }
// }
}
上記のように記述するとコンパイルエラーもなくビルド完了するものの、
if(debug_sa_play_sound_flg){ // alert.xml読込中じゃないか?
for(int cnt = 0; cnt < sa::itemcnt; cnt++){ //←コメント解除
// if(sa::flg[cnt]){
// }
} //←コメント解除
}
このループを実装すると、リンカエラーで以下の様なエラー
2>debug.obj : error LNK2001: 外部シンボル ""unsigned short sa::itemcnt" (?itemcnt@sa@@3GA)" は未解決です。
2>debug.obj : error LNK2001: 外部シンボル ""bool debug_sa_play_sound_flg" (?debug_sa_play_sound_flg@@3_NA)" は未解決です。
debug_sa_play_sound_flgは使えていたのでは?
また、以下のように記述すと、リンカエラーなくビルド完了
if(debug_sa_play_sound_flg){ // alert.xml読込中じゃないか?
if(sa::itemcnt){ //←なんの意味もないが、sa::itemcntが使えることを確認
// for(int cnt = 0; cnt < sa::itemcnt; cnt++){
// if(sa::flg[cnt]){
// }
// }
}
} 以下のように記述すると、リンカエラー発生
if(debug_sa_play_sound_flg){ // alert.xml読込中じゃないか?
int cnt = 0;
if(sa::itemcnt){
// for(int cnt = 0; cnt < sa::itemcnt; cnt++){
// if(sa::flg[cnt]){
// }
// }
}
}
エラー内容
2>debug.obj : error LNK2001: 外部シンボル ""bool debug_sa_play_sound_flg" (?debug_sa_play_sound_flg@@3_NA)" は未解決です。
なんで使えないんでしょうか? func.cppで
bool debug_sa_play_sound_flg = false;
とすればどうなる? debug_sa_play_sound_flgに関するリンカエラーも消えない? func.cppで
bool debug_sa_play_sound_flg = false;の一行前に
extern bool debug_sa_play_sound_flg;
を書いてみる
ヘッダをインクルードするときに変な名前空間に入っていないかを確かめる
リンカエラーが起きる最小のプロジェクトを作ってみる >>148
書いてみてもダメでした
>>149
流石にそれはなかったです ちょっと方向性を変えて、データをdebug.cppからアクセスするのではなく
debug.cppからfunc.cppのデータチェック用メソッドを呼ぶ様にしてみました
ですがやはり、このエラーが出てしまいます。
2>debug.obj : error LNK2019: 未解決の外部シンボル "unsigned int __fastcall
get_color_string_alert(char const *)" (?get_color_string_alert@@YIIPBD@Z) が関数 "void __fastcall strBufSet(char *,unsigned int)" (?strBufSet@@YIXPADI@Z) で参照されました。
externの使い方が悪いのでしょうが、さっぱりわかりません
どなたかご教示くださいますようお願い致します
http://www1.axfc.net/u/3585409?key=1234
圧縮ファイル内訳
・fls_src.lzh(公開されたソースファイル)
・fls_src2.lzh(debug.cpp, fls.cppにのみ手を入れたファイル)
修正箇所
以下のように日付コメントを入れてあります
//20151216 add start
u32 get_color_string_alert(const char* str);
u32 get_play_sound_string_alert(const char* str);
bool debug_sa_play_sound = TRUE;
bool debug_sa_play_sound_flg = TRUE;
//20151216 add end >>153
同じソリューションにある別プロジェクトの方で
同じソースを参照してて、そちらでエラーが出てました、ハイ Bitmapをただ保存して読み込むだけでdpiが変わってしまうのですが、
ライブラリのバグですか? pngとbmpでも結果が違うし
private void Form1_Load(object sender, EventArgs e)
{
Bitmap bmp1 = new Bitmap(16, 16);
bmp1.Save("test.png");
bmp1.Save("test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
Trace.WriteLine(string.Format("H:{0}, V:{1}", bmp1.HorizontalResolution, bmp1.VerticalResolution));
Bitmap bmp2 = new Bitmap("test.png");
Trace.WriteLine(string.Format("H:{0}, V:{1}", bmp2.HorizontalResolution, bmp2.VerticalResolution));
Bitmap bmp3 = new Bitmap("test.bmp");
Trace.WriteLine(string.Format("H:{0}, V:{1}", bmp3.HorizontalResolution, bmp3.VerticalResolution));
}
H:96, V:96
H:95.9866, V:95.9866
H:96.01199, V:96.01199 >>159
またスレチか
保存したときと読みだしたときの丸め誤差でしょ
保存する前にbmp1.SetResolution((float)25.4,(float)25.4);おけば誤差消えるはず H:25.4, V:25.4
H:25.3746, V:25.3746
H:25.4, V:25.4
となりましたが、pngは誤差が出ています
pngの解像度保存はなにか変ですね
読み込んだ直後にSetResolution(96f, 96f)を行うことにします bmpもpngもdpiじゃなくてdpmで記録してるし
bmpとpngで差が出るのはライブラリ実装の違いだろうなぁ
整数値欲しいならMath.Roundかければいいじゃん すみません、場違いなお馬鹿な質問なんですが・・・いいですか?
windows 7 で visual studio 6.0 sp6 をインストールできましたが、プログラムがうまくビルドしてくれません。
どうやって動作させるようにしたらいいのでしょうか?
実験program
#include <stdio.h>
int main(void)
{
printf("ようこそC言語へ!\n");
return 0;
} なんのエラーが出るかぐらい書けよ。脳みそ入れ替えた方がいいぞ --------------------構成: sample - Win32 Debug--------------------
リンク中...
LINK : fatal error LNK1104: ファイル "Debug/sample.exe" を開けません。
link.exe の実行エラー
sample.exe - エラー 1、警告 0 >>165
おまえグーグルも使えないのかよw
LNK1104を入力すれば、補完された問題点が山のように出てくるだろうが Framework v4.0ターゲットで、v4.0用log4netを使用したアプリケーションを作ってるのですが
ビルドして動かすとlog4netはちゃんと機能してログファイルを吐き出してくれますが
フォームのデザイナ画面を表示しようとすると、log4netのファイルまたは依存関係の1つが読み込めませんでしたエラーでデザイナが表示できません。
(フォームの基底クラスのコンストラクタでlog4netの読み込みをやっている)
アプリ開発とはまったく関係ない普段利用のツール類が要求するので
Framework v4.5やFramework v4.6を入れてるのでもしかしてそのせいかなとも思うのですが
この問題解消するには4.5や4.6を入れない状態にするしか無いんでしょうか? とあるx86ビルドのアプリがWin8.1(x64)で起動したら普通に動くのに
2008R2で起動したらエラー出してまともに動かないから
リモートでデバッグしてみてやろうと思ってVS2010のリモートデバッガ(x64)を2008R2にインスコしたんだけど
いざアタッチしようとしたら64ビットバージョンのリモートデバッガで32ビットのデバッグはできないから32ビットデバッガインスコしろって言われて
それじゃあしょうがないから32ビットのをインスコしようとしたら64ビットOSには入れられないよって言われる
クソじゃねこれ? インテリセンスが巻き戻るのは仕様なのか
再起動したら一応直るけどまた何回か候補出したらそのタイミングで巻き戻る プログラムで使う日本語の文字列をUTF8として解釈してほしいのですが
const char* const hello = "ハロー";
SJISで読みこまれるようです
ファイルフォーマットをBOMなしUTF8にすると微妙に文字化けします
"しきい値"が"しきぁE"
になる
なんかやり方ありますかね? 変換ミスでしょ。変換部分のソースとファイルをうpしてC++スレで聞け 1) BOMつける
2) VC使うのをやめる
3) const wchar_t* const hello = L"ハロー"; で定義して自分(API)で変換 >>174
変換ミスではないです
”い”のコードが"ぁ"になってることはデバッガ上で確認済み
>>175
1)は効きませんでした
2)はうーん・・・
3)をやってみます ソースファイルのエンコードをそのまま使いたいってことだったのか
Perlとかじゃないんだからそれはできないだろ Youtube見てたら、書式をショートカットキーで整列させる人がいたけど
どうやれば出来るの? VS2015でよければUTF-8文字列リテラルが使える。
const char* const hello = u8"ハロー"; VS2010のソリューションエクスプローラ上でかなり深い階層にあるVBファイルを開くには
階層を辿っていかなければならず結構めんどうなのですが
フルパスがわかっていれば一発で開けるような方法はないでしょうか?
Windowsの[ファイル名を指定して実行]やコマンドプロンプトでそのVBファイルのフルパスを入力しEnter押しても
新しいVS2010のインスタンスが作られてそちらで開いてしまいました。 C# で入力候補が出ていたんですが、途中から出なくなり、
スタブの生成が出てしまいました。
また入力候補を出したいのですが、どうすればよいでしょうか。 ネイティブC++で書いたアプリをデバッグビルドしてデバッグする際に、
特定の関数だけ/O2レベルの最適化をかけたいのですが
どうすれば良いんでしょうか…
問題の関数は/O2最適化時10秒、デバッグビルド時3分という大幅な速度差があり、
#pragma optimize( "ts", on )を問題の関数の直前に書いてみましたが、
速度が後者のままで変わりませんですた… デバッグビルドは全ての動作がリリースビルドより遅くなる 最適化オプションの問題じゃなくてデバッグ版のSTLがイテレータのチェックで死ぬほど遅い奴じゃねーの デバッグ時にSTLがイテレータのチェックするのをその関数のとこだけ除きたいって話だろ Visual C# 2010 ExpressのデータベースエクスプローラーでSQL Server 2012 Expressに接続しようとしているんですがうまくいきません
データソースにSQL Server(SqlClient)自体ありません、どうやれば表示されるんでしょうか? with Tools ってのをインストールしてないとか?
SQL Server Express 2012 & Visual Studio 2010
http://www.formatyourbrain.com/sql-server-express-2012-visual-studio-2010/ >>196
WindowsUpdateをしてSSDT for visual studio 2010をインストールしました
なのにまだデータベースエクスプローラーでは「Microsoft SQL server(SqlClient)」と表示されません .net4ベースでwindowsフォームアプリケーションの開発をしています。
ClickOnceでサーバーにhttpにて配置しクライアントへインストールまではできましたが、
アプリケーションと配置のマニュフェストを更新しバージョンを上げて再配置したところ、
開始前の更新チェックを設定しているはずなのに、更新が行われず古いバージョン(インストール済みの現バージョン)で起動してしまいます。
管理者権限は初回のインストール時に必要で常に必要ではないとの認識ですが、権限を与えてもうまくいかず、IEのキャッシュを削除してもうまくいきません。
他にどういったところが影響していると考えたら良いでしょうか。
どなたかお知恵をくださいませ。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
7YHDE >>202
CDから起動だかで配置しないとVerチェックまともに働かなかった記憶がある clickonceの件は、開発環境の.net4.5にwindows updateの適用がされた影響で、アプリ起動時の更新チェックに使用される暗号化アルゴリズムがデフォルトでSha2になった為でした。
アプリの証明書はSha1だったので、これが原因でした。 Win7 64BIT に VS++ 2010 Express をインストールした状態で、
64BIT コンパイラを使おうと思って、DL した ISOイメージから作った
「Windows SDK for Windows 7 and .NET Framework 4」
を DVD からインストールしようとしたのですが、途中でエラーになり
インストールできませんでした。
product has reported the following error: Please refer to
xxxx\HTML\ConfigDetails.htm
みたいなエラーが出て、いろいろ試しましたが駄目でした。 報告かな?w
内容からして頭の方が駄目だったんだろ
聞きたいんだったらエラー内容とかhtmの内容書けよw >>1
2010ダウンロード先なくなってるんだけどダウンロードできるところないですか? C#かVBのようなので2010は関係ないかもしれないけど
自分が作ったアプリじゃないんだけどコードを2017で起動してみたらコードにエラー箇所があるから2010以前なら問題ないかなと思ったんだ ファイル名でググってればどっかにあんだろ。
Internet Archiveでもいいし。 すみません
msgboxで文字化けしますが
なぜでしょう? VSすれだぞ
ここで聞く点からしてプログラミング向いてないよ諦めな VS 2019 - v16
VS 2017 - v15
VS 2015 - v14
VS 2013 - v13
VS 2010 - v12
VS 2008 - v11
VS 2005 - v10
であってます?
VS 2012 が有ったような?
VS 2015 のスレって無いんですか? >>220
VS2005 ---> Ver 8
VC++ 6.0 ---> Ver 6 >>221
評価します
>>222
しね
>>223
書き足すが良い VS2010のWEBインストールが接続で失敗する
ついにサポート切れでインストールできなくなったか・・・・ iso探したけど英語版ならググレばあるけど、日本語版はないね メルカリやヤフオクでも5万以上するし
なんとかしたいな Internet Archiveなどから拾えるだろ ここ普通に生きてない?
https://my.visualstudio.com/Downloads?q=visual%20studio%202010
もうみんな忘れてるかもしれんが、この時代から試用版の中身は製品版そのものだ。
っていうか、iso落として保存してない間抜けな人っているんだねw
っていうかこの時代はそもそも普通にAmazonとかでパッケージ版買ってたと思うんだけどw >>233
いけたわ
マジでありがとう!!
ヤフオクで5万円で買わずにすんだわ
リアル知り合いならモスのソイパティをおごりたいところ 7-Zip 21.02 alphaのソースから7z.sfxと7zCon.sfxがビルドできなくなったな。7zS.sfxはまだ行けた。
だいぶ昔の19.00のソースならどちらもビルドできた。
VS2013なら21.02 alphaでもすべてビルドできた。 2022スレ立ってるけど
もうバージョンでスレ分ける意味なんてないだろ
しかもワッチョイだし VisualStudio2010のC#で作成した2つのアプリ(A,Bとする)と1つのDLL(C.dllとする)
があって、C.dll内の関数のfloatやdoubleを使った計算が、Aから呼び出した場合とBから呼び出した場合
で異なる(誤差が出る)んだけど、何が原因なんだろう?ターゲットプラットフォームの
問題かと考えてAとBをx86にそろえたけど変わらない。 AとBでDLL呼び出すための宣言が違ってるんじゃないか? >>239
早速の返信ありがとうございます。
ビンゴかもしれません!
今、条件を変えて調査中です・・ 238です。
宣言は確かに異なっていたのですが、合わせてみても結果はかわりませんでした。 誤差の出る部分を絞り込むと、math.sqrtに行き当たりました。
こんな感じです。
A:Math.sqrt(14) = 3.74165749549866
B:Math.sqrt(14) = 3.74165738677394 >>243
ほんそれ
>AとBをx86にそろえたけど
とか言ってるから x86 の DLL と x64 の DLL がありそうだし >>246
>>247
ありがとうございます。ヒントになりそうなので、こちらの方向で調べてみます。 >>246、>>247のヒントで、C.dll内にあるMath.Pow, Math.Sqrt, Math.Ceilingなど、
floatからdoubleにキャストされてしまう関数を再度floatにキャストしたり、小数部の
誤差を切り捨てるで、誤差を減らせることがわかりました。(なかったことにするとも言う)
最悪これでいきます。
AとBのアプリからC.dllの同じ関数を同じ引数で呼んでいるのに、なぜ戻り値が
異なるのかはわかっていません。そこがわかればスッキリ直せそうなのですが。 どっかで型変換しちゃってるんでしょ
面倒なことせずにABC全部doubleで統一したらいいよw どこかで型変換してしまっているんですかねぇ。。
お伝えできていませんでしたが、A、BからC.dllへ渡す引数はすべてInt型です。
C.dll内の数値計算でfloat,doubleが使われています。C.dll内で型変換を
してしまっているのなら、A,Bどちらからも条件は同じはずなのに・・
私としてはVisualStudioの設定の問題かと思ってこちらに書き込みましたが、
スレチな可能性が出てきましたので、この辺でおいとましようかと思います。 >AとBのアプリからC.dllの同じ関数を同じ引数で呼んでいる
あやCすぎる ABはこのどちらかの問題があるはず
・dllに同じ値を渡してるつもりだけど、実は異なる値を渡してる
・dllから異なる値が返ってきてるつもりだけど、実は同じ値を受け取ってから異なる値にしてしまってる
Cは小数点の計算誤差を拡大してる状態だろうからそこも修正すべきだけど、とりあえず今回の問題とは無関係
まぁABCの全ソースをうpするぐらいじゃないとわからないな(一部ソースにするとたいていそこに問題あるから全ソースじゃないとダメ) ABから完全に同一条件で同一のメソッドを呼んでいるかが最初に確認すべきことだと思うんだけど
そこを誰も聞かないのが凄いねw なにを期待してるんか知らんけど
そもそも真面目に答える義務なんて無いから
ノイズだらけの問題にまともな答えが来ると思ってる方が可笑しい 質問主です。
いいえ、皆さんの意見は参考になっています。ありがとうございます。
ソースコード全部は難しいので、現象を簡略化してみました。
C.dllに次の関数を用意し、A、Bから呼び出しました。
public static int test()
{
string tmpStr = "";
tmpStr += "Math.sqrt(2f) = " + System.Math.Sqrt(2.0f).ToString() + "\n";
tmpStr += "Math.sqrt(2d) = " + System.Math.Sqrt(2.0d).ToString() + "\n";
string tmpFileName = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "debug.txt");
System.IO.File.WriteAllText(tmpFileName, tmpStr);
return 1;
}
結果は次の通りです。
A:
Math.sqrt(2f) = 1.41421353816986
Math.sqrt(2d) = 1.41421353816986
B:
Math.sqrt(2f) = 1.4142135623731
Math.sqrt(2d) = 1.4142135623731
A、Bと引数、結果のやり取りをしていないので、無意識の型変換はされていないと思うのですが、
見逃している点があるのでしょうか。 A は import Mathf
B は import Math
というオチとか 綺麗にAがfloat、Bがdoubleになってるな
省略した部分に問題があるよ MathF、Aの結果がfloat、いろいろご助言ありがとうございます。
MathFについては、私も調べてみたのですが、.NETのVer.5から追加されており、
今使っているVS2010の.NET Ver.4では実装されていないようです。
とはいえ核心に近づいていると感じますので、同様の問題に引っかかっていないか、
調べています。 呼び出し方については、下記まで簡略化しました。
A,Bとも(BはFormAとFormBと読み替え)
namespace WindowsApplication1
{
public partial class FormA:Form
{
public FormA()
{
InitializeComponent();
tlib.tcls.test();
}
}
}
C.dllは
namespace tlib
{
public static class tcls
{
public static int test()
{
>>257と同じ
}
}
}
A、BともC.dllをソリューションエクスプローラーの「参照設定」から追加しました。 簡略した形式でいいから誰でも再現できるようにABC全ソース(プロジェクト一式)をzipでかためてどっかにうpしろって
>>262は言葉にしたら「ACとABは同じソースコードなのに結果が変わる」だからな。それはあり得ないんだよ 実は C.dll が2個あるとかは?
A と B の置き場所カレントディレクトリを一緒にして C.dll もそこに置いて確認はしたか 全ソースを準備している途中で、どこかの段階でAの結果がBと一致するようになりました。
ありがとうございます。ここまでくれば徐々にAを戻していって、自力で原因に
たどり着けそうです。皆様の助言のおかげです。 やっぱりここで言ってるのとは違って実際には「違うことやってるから違う結果が出た」だけの話だよねw
最初からそうだと思ったよ。
プロジェクトの設定にMath.Sqrtとかの結果に影響を与えるようなオプションなんて存在しないしw コンパイルオプションで常にdoubleをfloatで計算するようなのあったっけ 質問主です。
原因は、ネットから落として来たフリーのDirectX関係のライブラリでした。
このライブラリの初期化前に実行するとSystem.Math.Sqrtは正しい(doubleの)
答えを返します。回避策としてSystem.Math.Powを使えそうです。
このライブラリがSystem.Mathに影響を与えるはずがない、と思い込んでいた私が
間違っておりました。
皆様のご助言、大変助かりました。 なるほど
>フリーのDirectX関係のライブラリ
kwsk >>269
責任転嫁のために必死で考えたんだろうから、
あまり突っ込んでやるなよw 標準ライブラリの置き換えはわりとやるぞ
例えばPCのシステムタイム変更したくない/できないからkernel32のGetTimeZoneInformationの動作変えるとかさ
math.sqrtが置換できるのかは知らないけどdirectx系ならやりたくなってもおかしくない 質問主です。
ライブラリの作者の方に相談したところ、これはDirect3D 9の仕様であり、計算速度を稼ぐために
CPUの浮動小数点演算の精度をfloatに変更するのがデフォルトになっているとのことでした。
それを無効化するオプションの設定方法を教えていただき、無事解決しました。 >Direct3D 9の仕様
ほう
オプション描けよ DirectXの初期化時にD3DCREATE_FPU_PRESERVEというフラグをセットすること
により、回避できるそうです。 https://docs.microsoft.com/ja-jp/windows/win32/direct3d9/d3dcreate
Direct3D 浮動小数点演算の精度を、呼び出し元のスレッドで使用される有効桁数に設定します。
このフラグを指定しない場合、Direct3D では、次の2つの理由により、
既定で単精度のラウンドツーニアモードが使用されます。
倍精度モードでは、Direct3D のパフォーマンスが低下します。
Direct3D の部分は、浮動小数点単位の例外がマスクされることを想定しています。
これらの例外をマスク解除と、未定義の動作が発生する可能性があります。
なるほど最近のバージョンでも起こり得るのかな Dirext3D内部の設定がSystem.Mathに影響を与えるってこと?w
よく知らんがFPU自体が演算精度の設定を持ってて、
プロセス全体の演算精度がそれに影響されるってこと?
聞いたことないけどマジならヤバいねw デバッグ時にのみ環境変数を設定したいのですが
プロジェクト→プロパティ構成プロパティ→デバッグ→環境
で設定しようとしても1つしか設定出来ません
hoge1=a
hoge2=b
のようにしてもhoge1のみしか有効になりません
解決策あるでしょうか? pathを複数設定するときに複数行で書けず1行にしないといけなくて困ったことあるけど、それもだめなのかよ。なんとかしてもらいたいな
ソースコード中で#ifdef DEBUGとか使って設定したら? yotube-dlってVC2010を使ってるけど脆弱性とか大丈夫? 使っているのはexe化しているpy2exeだから、
心配なら最新のPython上で動かせばいい。