Windows 10 UWPアプリ開発Part 3 [無断転載禁止]
ワイ 「これでWindowsのメッセージボックスにabcって表示されるんやな?」
std::string c_a = "abc";
MessageBox(hWnd, TEXT("c_a"), TEXT("安部辞任城"), MB_OK);
メッセージボックス「c_a」
・・・キチガイか?w 質問しておいてなんだけど適当に総当たりで試したらなぜかできたわ・・・
LPCWSTR c_a = L"abc";
MessageBox(hWnd, c_a, L"情報", MB_OK);
>>2だとダメなのは、
・c_aの型とMessageBox()の第2引数の型が違う
・TEXT("c_a")だと、TEXT("L"abc"")ってなる
って理解でOKなんか?
他にもダメなところあったら教えてほしい。 >>4
TEXT("abc")はUnicodeかANSIかで変わる
いまはほとんどUnicodeだからL"abc"とイコールと考えてよい
ANSIビルドだったら"ABC"になるけども
TCHAR使うときはTEXT("abc")、wchar_t使うときはL"abc"でいい >>5
すまんな、Windows APIスレが無くて・・
>>6
そんな罠があったんや
文字コード周りは複雑すぎて頭が痛くなる
サンガツ、詳しくなったわ どなたか、わかる方おられたら教えてください。
今、アプリをストアに申請しようとして、差し戻しくらったところです。
windows10 Sモードをサポートしていないから、サポートする様に対応するか、メタデータのどこかに10Sをサポートしていないことを明記せよってレポート貰いました。
サポートさせるには何をやったらいいか分からず。
またはサポートしないって書くとしたら、メタデータってマニフェストでしょうか?あと、書き方も分からず必死こいて調べています。
アプリインストーラは元はパイソンで書いて、exe化までを、パイソンでやった実行ファイルをmsix packaging toolで.msixにしました。 マニフェストはどう書いてるの?
TargetDeviceFamily とか Capability とか
Python の exe 化のことは分からないけど .NET で作ってない場合はWin32になるだろうから Windows.Desktop と runFullTrust, Windows.FullTrustApplicstion の指定が必要 >>12
マニフェスト、分からなかったので、.NETで空のアプリ作ってそこに自分とアプリ情報を入れました。
一度見てみます。ありがとうございます。 Microsoft、UWPをこっそりと潜めていく方向を明らかに
https://news.mynavi.jp/article/20211021-2165558/
>Microsoftは10月19日、「Developing for Windows with the Windows App SDK · Discussion #1615 · microsoft/WindowsAppSDK · GitHub」において、
>UWPが実質的に互換性維持のために提供される状態へ入り、
>代わりに「Windows App SDK」へ開発がシフトしていくことを説明した。
>Windows App SDKをデスクトップとUWPの両方の機能のスーパーセットにすることが説明されている。 UWPは全く流行らず消えてしまうのね
マウス操作もしづらいし
PCとスマホアプリを統合しようとしたのが失敗 Win11でタブレットモード無くなったけど、ああいうタイトルバーもタスクバーも含めない画面表示したいときは自前で実装しろってこと? OneNoteもデスクトップアプリ版に戻ると聞いてホッとしている
前スレではOneNoteがUWPとかいうUnko Windows Program APIの犠牲者として大幅劣化したことに耐えられず怒り狂ったが、やっとMSも自身が誤った道を進んでいたことを認めてくれて嬉しいよ
EdgeもChromiumベースに方針転換したし、やっぱりAPIレベルで腐ってたのは間違いなかったなあ
もはや存在そのものが呪われた遺物、もとい汚物だよUWP C#でネイティブコードで実行するアプリ作るならUWPしか選択肢なくないか? Windowsフォームのデスクトップアプリを、msix packaging toolで.msixにしているのですが、どうしてもマニフェストファイルが有効になりません。
その名前は「★.exe.manifest」で、.msix後は別の内容になっています。
どこが悪いのでしょうか? GやYだったら、終了つったら翌日から使えなくなるけど。 In-App Purchase(アプリ内課金)使ってる人いる? ユーザーからアプリ内購入の画面が表示されないって言われた人いる?
これまで100本以上アプリ内購入してもらってるんだけど1人だけアプリ内購入の画面が出ないと報告してきた人がいる
ネットワーク未接続なども試したけど、ネットワーク未接続ならその旨の表示がちゃんと出るし
原因がさっぱり分からない OSに標準で入ってるモジュール削除してるとか?
XBOXなんたらってストアアプリは確か課金だかMSアカウントの処理に関わってる
おすすめとかウザいとかいう理由で
たまにプリインストールされてるのを削除したがるのがいる
気持ちはわからんでもないが IAPの購入判定ってPC単位?(Consumableか否か)
アカウント単位なら動くPCで購入してもらえばいいんじゃねーの
極端な話、人のPCや店頭のPCでもいいわけで(サインアウトしとけば)
まあ、購入できない以上、家のPCに購入したって情報を反映できないかもしれんけどw
失敗してもMSは返金してくんないよ
おすすめなのは自分が変なカスタマイズしてない他PCで試してもらうこと
自分のPCがおかしいってことを認識してもらうしかないのでは 参考情報ありがとう
・アプリ内購入は消費型ではなく耐久型(買ったらずっと有効)にしてる
・購入済情報はWindowsアカウントに紐づく
だから他PCで試してもらうというのはアリだとは思うが、その報告者が別PC持ってるか分からん
初心者向けのアプリなのであまり難しい切り分け作業など頼みにくいし
本来、アプリ内購入で表示されるウィンドウはストアに似ている(青い画面が表示されてサインインしていないときに表示されるユーザー確認画面もストアと同じ)
ストアと同じモジュールやロジックが使われてるっぽいので、まずはストアを起動してストアに自分のアカウントでサインインできるか確認を依頼した
進捗があったりや原因が分かったらまた報告に来るよ! 1人のユーザーさんだけアプリ内購入の画面が表示されない問題解決した!
Microsoft Store を単体で起動してサインアウト・サインインし直してもらったら、アプリ内購入も正しく表示されるようになったとのこと
みんなありがとね 私のUWPアプリ日本語表示にしか対応してないんですけど
ストアで全世界(市場=241ヵ国)で提供してもいいんでしょうか?
いまは、市場=日本、言語=日本語 にしています。
アメリカ在住の日本人から私のアプリがストアに表示されず買えないという報告がありました。
外国に住んでても日本語を読める人にはアプリ使ってもらってかまわないので、
ストア設定を 市場=241ヵ国、言語=日本語 に変更しようかと思ってます。
アプリ内では日本語しか表示されない、ストアの説明等も日本語しか設定していない
このような場合でもストアの市場設定を全世界(241ヵ国)に設定することは問題ないですか? アプリ自体がローカライズされてなければ大丈夫
されてれば、その言語ごとの説明とか書かないとダメだったような
もう忘れたけどw >>35
ありがとうございます
私のはじめてのアプリ、全世界に向けて発進します! 思い返せば15年以上前のWinFSからMSのプロジェクトは失敗続きだねw
逆にこんだけ失敗しまくっても会社もエコシステムもちゃんと生き残ってるのが凄いねw
っていうか、Win32を廃止してUWPに統一するなんて絶対うまくいかないって最初からみんな分かってたよねw
少なくとも俺はそう思ってた。
MSみたいな知能指数も学歴も高い人間が集まってる企業で何でこんな子供でも失敗すると分かる
戦略を打ち出したのかね。 UWPはメンテナンスモードに入ってMS関係者からも非推奨って言われちゃってるし、
WinUIは完成度が低すぎてお先真っ暗、Flutterに食われそう。 WPFやwinformsにもう食う部分残ってないやろ >>39
winformsはWPFが完成した4.5の時点で完全に役目を終えて使う理由が何処にもない。
WPFはUWPやWinUIがオワコン・機能不足でWPFの方がまだましという悲しい状況。 >>40
WPFにはパフォーマンス問題があってGDI+を代替できない。
あと、GDI+のように印刷をウィンドウに対する描画と
透過的に扱う仕組みがない
MVVMとかごり押ししたエバンジェリストたちの責任もあると思うが、
これがWPFが立ち往生した大きな理由だと思う WinFormsに回帰すればいいんだよ
今風の見た目と挙動のコンポーネント追加すりゃいいだけのことだぞ
なぜそれが分からんのだMS
そんなだから駄目なんだぞMS 見た目の問題じゃないんだよなあ
WPFとかメインスレッドと描画スレッドが分離してるのがいいんだよ
WinFormsは構造的に遅い スレッドの問題はどうにでもなるじゃろ
致命的なのは高DPI対応だよ >>44
自分でスレッド立ち上げてどうなんの?
WinFormsはメインスレッドからしか触れないから意味ないよ >>46
UIThread invokeLaterしらないのに、よくGUiの仕事してきたなwww
ゴミPG WinFormsで十分とか言ってるのは業務系PGだろ
アニメーションとかやったことないんだろうなー 説明スキルなければ黙ってたほうがかしこいよ
ただの酔っ払いにしか見えないからww >>53
業務系でも部品の共通化やサイズや配色の統一ぐらいはするだろ。
WPFなら簡単簡潔だけどWinFormsだと非常に使い勝手が悪い。 >>53
業務系こそ高DPI対応必須でな
世の中の老眼率なめたらあかん >>53
WPFでゲーム作れる?w
まあ少なくとも向いてないよね。
意味ないよそういう言い方。
アニメーションというか視覚効果はあった方が「たのしい」のは間違いないけど、
当初当初想定されたより需要がなかった。まあこれが現実だ。
>>56
老眼なら逆に高DPIは無意味な気がするw
スマホみたいなスモールスクリーンは別にしたら、高DPiは表示品質を上げるためのものであって
低視力を補助するためのものじゃないよね >>57
HiDPIのこと勘違いしてない?
4KノートPCだと200%設定にするのが当たり前だし
FHDノートPCでも125〜150%設定にする人が多い(老眼の人ならなおさら)
でもWinFormsだと拡大率(HiDPI)が正しく処理されないって話だよ >>58
だから、それあは「表示倍率」であって本来の意味のdpiと関係がない
dpiって何を縮めた頭字語だか理解してます? 本来の意味と実際の使われ方が違う例なんていくらでもあるだろ。
そもそも設定項目名自体が「拡大率」だからな。 >>59
いや本来の意味のdpi(dot per inchi)で合ってるよ
14インチFHDと14インチ4Kを比べてみてよ
ドット密度が縦横それぞれ2倍違うでしょ
だから14インチ4KをHiDPIと呼ぶのは間違ってない
14インチ4K(HiDPI)では16ドットの文字が極小で表示されてしまうから拡大率という設定があるんだよ >>61
話しの文脈読めてますか?
だから、高dpiは表示品質を高めるが、低視力は補助しないの。>>57
低視力を高める方法は「文字やグリフやUI要素を大きく表示して視認性を高める」
ことであって、dpiは無関係 >>62
UIのXAML化がされればそれでもいいけどな。
WinFormsがもう使い物にならない根本的原因はそこなんだから。 >>63
XPの設定ダイアログより
>画面の項目が小さくなり見にくい場合はDPIを増やすと見やすくできます
7のDPI設定ダイアログより
>小(100%)、中(125%)、大(150%)
8.1のDPI設定ダイアログより
>すべての項目のサイズを変更する
>小さくする、大きくする >>66
もう馬鹿なのかこの人
だからそれは>>56その他の人が言っている高dpiと無関係 >>67
馬鹿はお前。
無関係どころかほぼイコール。
なんでこんな簡単なことがわからんのかね。 (笑)
まあこういう低知能な人は本来プログラマになってはダメな人なんだけど、
残念ながら日本は特殊でむしろ低知能な人がプログラマを目指す現実がある。
高dpiとはピクセルのサイズが小さいということ。
ピクセルが小さくなったらどう低視力の人にフレンドリーなんだ「(笑)
意味が分からん。
高dpi対応とはUIの座標系にピクセルをそのまま採用することをやめて抽象化することだ。
だからピクセル座標系をそのまま使っているWindows Formの高dpi対応能力には限度があるという話をしているのに 何人が書いてるのかわからないけど
このスレにこんなに人いたのが驚きw 前世紀に開発された旧VBは(現実には理想倒れだったと思うけど)一応高dpi時代の到来を想定して
UIの座標系にはtwipsという単位を採用して抽象化されてた。
たぶんこれが評判が悪かったんだろうけど、その意味ではFormはVBより退化してるんだよね。 高DPIでWinFormアプリがどうなるか知らないなら黙ってろ XAMLが採用されて初めて高DPIサポートが完成する どなたか質問させてください。
・UWPでMicrosoft.Toolkit.Forms.UI.Controls.WebViewは使用できますか?
・UWPで使用できるものはWindows.UI.Xaml.ControlsのWebviewとWebview2のみでしょうか? >>76
それこっちが調べるの?
自分で調べて報告してくれよ 11のFUで使えるようになったWSAでも試すかとMSストア覗いたらそこそこ賑わい出したかなあ
UWPすげぇなあ^^; プログラミング寄りの質問ではなくてすいません
MicrosoftStoreのUWPアプリを最大化状態で起動するように設定させたいのですが
そういった設定や引数はレジストリのどこかにあるでしょうか
スタートメニューのピン留め等のアプリアイコンから直接起動させたいのでショートカット経由ではない方法を探しています
Webを調べても開発寄りの話しか出てきませんでした >>86
ショートカット作って、それをスタートメニューに登録して、それをピン留めすりゃいいよ 仕事でUWP初めて触ったけどなんやこのクソは
表示周り制限多すぎやろ 仕事なら割り切れるでしょ
クソの上に新たなクソを作るのが今の君の仕事だ