C++/CLI でSystem::Array関連のコンパイルが通りません。
C++/CLIで作成したDLLをVB.netで運用しています。 VB.netで定義した配列の要素数をC++/CLI側で変更します。 s.test3(ar1) で、single配列の要素数を変更する動作は正常です。 これを発展させて、配列の要素型が何であっても処理できるメソッドを作りたいです。 要素型をintとfloatで実験したのですが、 Array<int>とArray<float>の親クラスはいずれもSystem::Arrayなので、void…
C++/CLIでデバッグ実行中に、delete_scalar.cpp という画面が出て例外が発生する
VS Version Community 2019, Ver 16.11.42 (詳しくは画像を御覧下さい) C++/CLIでマネージ型のDLLを作成しています。 int ii = 4; UINT64* test1 = new UINT64[ii];//例外発生 test1[0] = -9;//何かの処理を行う delete test1; ↑この様な処理をしたいのですが、UINT64* test1 = new UINT64[ii]; の行を実行すると delete_scalar.cpp…
英語版で作成したダイアログに日本語を入れると日本語が小さく表示される
開発環境は Windows11/ VisualC++(MFC)です。 ダイアログの言語を 英語(米国)にして作成している中に、チェックボックスを入れてラベルの一部に日本語の記号を入れる必要が出てきました。 リソースエディタで日本語を入力しても保存して再度リソースエディタを開いたら文字化けするため、 プログラムから…
C++のqsort_sを使用して並び替えが起きない場合、先頭のデータが最後に移動するのを回避したい
開発環境は Windows11/ VisualC++(MFC)です。 タイトル通りのですが、 qsort_sを使用してデータが8個以下で一度も並び替えが起きない場合、なぜか先頭のデータが最後に移動するので、 それの回避方法があれば教えてください。 以下はサンプルプログラムです struct TestStruct { int order; int value; }; int comp(void* z, const void* x, const void* y) { TestStruct* p1…
アプリが暗黙的な代入演算子でクラッシュする
Windowsアプリ開発(C++ネイティブアプリ)で以下のようなクラスを作成し、そのクラスを使用している関数を繰り返し実行していると突然アプリがクラッシュしました。 クラッシュダンプを見ると、暗黙的に作成されたと思われる代入演算子( operator= )でクラッシュしていました。 下記のコード内では、どこにも代入するコードは入っていないのに、それがなぜ、どこで呼ばれたのか分かりません。 この辺りの動作に詳しい方、アドバイスを頂けますでしょうか? よろしくお願いいたします。 Header file…
C++/CLIでコンパイルエラーC3624 の解決方法が分かりません。
Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.11.5 .Net Framework 4.8.09037 System::Windows::Media::Imaging::BitmapImage^ bmp0; System::String^ fs1; bmp0 = gcnew System::Windows::Media::Imaging::BitmapImage(gcnew…
C++/CLI Vector3D型で定義したメンバー変数がValueTypeと認識される
Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.11.2 .Net Framework 4.8.1 C++/CLIでマネージド型のdllを作成し、VB.netから参照しています。 <C++/CLI> public ref class TestClass { public: System::Windows::Media::Media3D::Vector3D^ Vector3D_1 = gcnew…
VB.netでのコンパイルエラー:サポートされていない戻り値の型か、またはサポートされていないパラメーター型が指定されています。
Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.11.2 .Net Framework 4.8.1 C++/CLIでマネージド型のDLLを作成し、VB.netで参照しています。 DLLは正常にビルドできています。 <C++/CLI> public ref class testclass1 { public: int i1() {return -1;} }; public ref class…
プログラムからOneDrive/ドキュメントのフルパスを得る方法はありますか?
開発環境は Windows11/ VisualC++(MFC)です。 OSのドキュメントフォルダをOneDrive以外に変更している状態で OneDrive下のドキュメントフォルダのフルパスを得る必要が出てきました。 日本語版だと フォルダ名は "ドキュメント"、英語版は "Documents"になっていますが、それ以外の国で違っているようなので、プログラムからフルパスを得たいと考えています。 得る方法があれば教えてください。
C言語 共通ヘッダー作成に関する事
共通ヘッダー作成に関する質問 共通ヘッダー<getputch.h> #ifndef __GETPUTCH #define __GETPUTCH /* MS-Windows系 */ #if defined(_MSC_VER) || (__TURBOC__) || (LSI_C) #include <conio.h> #static void init_getputch(void) {} #static void…
ファイルダブルクリック起動のDDEに関して勉強中
データファイルをダブルクリックしたときに、 DDEを使用したアプリケーション起動、データファイルを開くを実装しており、 そのDDE通信がどのように行われているか勉強中なのですが。 下記は推測も入っています。 ・エクスプローラ側(クライアント側)は、すべてのトップレベルウィンドウに、WM_DDE_INITIATE メッセージ(+ 2 つのアトム)をSendMessage関数で送信します。 ・アプリ側(サーバー側)は、受け取ったアトムが自身の作成したアトムと同じか比較し、同じならば …
VB.netからC++/CLIへの移植がうまくいきません。その2
以下のVB.netソース(正常に動作する)を移植しようとしています。 やりたいことは、2つの異なるクラスのインスタンス間で通信したいのです。 そのために、共通にアクセスできる構造体を媒介しています。 C++/CLIでコンパイルが通るようにする方法を教えて下さい。よろしくお願いします。 ■VB.net Class MainWindow Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles…
C++/CLI エラーE0291 でコンパイルが通らない
↓C++/CLIのソースコードです。 #include <iostream>//printfの使用で必要 using namespace System; using namespace System::Collections::Generic; ref class testclass1 { public: float x1; System::Collections::Generic::List<int>^ list1;//コンパイルは通る testclass1()…
C++/CLI value structとはどういう意味ですか?
C++/CLI value structとはどういう意味ですか? Microsoft公開のドキュメントでも記載が無いので質問します。 「ref class と ref struct (C++/CLI および C++/CX)」等…
VB.netコードのC++/CLIへの移植がうまくいきません。
<VB.net > Dim SL1 As New HashSet(Of String) SL1.Add("###") Dim s1 = SL1(0) ※これは、成功します。 しかし、Copilotを使って翻訳すると(ライブラリーの参照の仕方は、現在作成中のプロジェクトに合わせてあります。) <C++/CLI> #using <System.Core.dll>//これを記述しないとHashSetが使えない using…
MFC/CStringをの3バイトや4バイト文字を対応出来るように変更する方法はありますか
開発環境は Windows11/ VisualC++(MFC)です。 すこし前に MFC/C++ でCStringにユニコードの3バイトや4バイト文字が入っている時の取り出し方について質問したのですが、CStringからGetAt/Midなどで文字を取り出している箇所は1000箇所以上あるため どう処理をしたら良いか悩んでいます。 今のところ CStringEx(CString)クラスを作り、GetLength/Mid/Left/Rrightを2バイト以上に対応して1000箇所に入れようとしていますが…
C++/CLI 自作クラス(IEquatable)の比較方法がわかりません。
C++/CLI 自作クラス(IEquatable)の比較方法がわかりません。 <C++/CLI> namespace Wrapper { public ref class MyClass { public: int i1; int i2; //コンストラクター MyClass(int _i1, int _i2) { i1 = _i1; i2 = _i2; } bool Equals(MyClass^ other) //staticは使用できない…
MFC/C++ でCStringにユニコードの3バイトや4バイト文字が入っている場合、1文字づつ取り出して CStringArrayに入れたい
MFCのCStringから1文字づつ取り出してCStringArrayに入れようとしています。 CStringにサロゲートペア/結合文字(つまり2バイト以上の文字)が入っていると, CString::GetLength/CString::Mid/CString::GetAtが上手く動かないので、 これらの文字が入っているCStringから1文字づつ文字数分取り出す方法をご教授ください。 環境:Windows11/VS2019 C++ です。 よろしくお願いします。 やっているのはこんな感じです。 for…
MFCアプリでXaml islandsを利用してWinUI3のダイアログを表示したいと考えています、どういった手法で行えばいいですか?
既存のMFCアプリでXaml islandsを利用してWinUI3のダイアログを表示したいと考えています。 Windows App SDK の安定チャネルのリリース ノートで 「バージョン 1.4 XAML Islands が試験段階ではなくなった」 とありますので利用できると考えているのですが、理解しやすい資料が無く困っています。 利用する際の手法、サンプル、おすすめのドキュメント等があれば教えて頂けないでしょうか?
VB.netのクラスのC++/CLIへの配列の移植がうまくいきません。
VB.netのクラスのC++/CLIへの移植がうまくいきません。 <VB.net>正常にコンパイルでき、動作する Class test0401 Public Property arr1() = {} Public Sub New() arr1 = {1, 7, 4} End Sub End Class <C++/CLI>正常にコンパイルでき、動作する public ref class test0402 { public: int FG1; …