Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.1 ) |
- 名前:管理人 日時:2024/09/02 01:54
手元の Visual Studio 2022 の環境で
#include "DxLib.h"
#include <math.h>
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 )
{
return -1 ;
}
double i = 1.8;
int tmp = round(i * 0.5);
DxLib_End() ;
return 0 ;
}
↑
こちらのようなDXライブラリを使用しつつ round を使用するプログラムを
組んでみたのですが、特に問題なくビルドでき、プログラムも実行することができました
( 「ランタイムライブラリ」の設定も /MT /MTb のままです )
スクナさんの環境では上記のプログラムでもコンパイルエラーが発生してしまうのでしょうか?
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つから ( No.2 ) |
- 名前:スクナ 日時:2024/09/02 18:25
管理人さんのコードにしても同じエラーが出ました。
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.3 ) |
- 名前:管理人 日時:2024/09/02 22:16
お試し頂きありがとうございます
DXライブラリのパッケージの中に『サンプルプログラム実行用フォルダ』というフォルダがあり、
そのフォルダの中にある VisualStudio_2022用.sln というファイルを Visual Studio 2022 で読み込むと
DXライブラリのプログラムを実行するための設定が全て済んでいるプロジェクトを開いた状態となります
プロジェクトに含まれている test.cpp がコンパイル・実行されるようになっていますので
お手数で申し訳ありませんが、test.cpp の内容を全部削除して、投稿No.1 の私の投稿のプログラムを
貼り付けて実行してみても同様のエラーが発生するかお試し頂けないでしょうか? m(_ _;m
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.4 ) |
- 名前:スクナ 日時:2024/09/03 19:29
サンプルプログラム実行用フォルダのものを使っても同じエラーが出ました。
Dxlibを使っていないコンソールプロジェクトの下記コード
#include <iostream>
#include <math.h>
int main()
{
int tmp = round(0.5);
std::cout << tmp;
}
を/MT /MTbにしても同じエラーが出るので
私のVisualStudio2022側が全体的におかしいのかと考えています。
Visualstudio2022を再インストールした方がいいでしょうか?
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.5 ) |
- 名前:管理人 日時:2024/09/04 00:53
お試し頂きありがとうございます
確かに Visual Studio 2022 が少し変かもしれませんね…
Visual Studio Installer を起動して Visual Studio 2022 を『変更』をすると、インストール時のように
インストールするコンポーネントを選択することができるのですが、私の場合は
『デスクトップとモバイル』の欄にある全5項目と
『ゲーム』の欄にある『C++によるゲーム開発』にチェックが付いていました
よろしければ再インストールをされる前に上記の6項目にチェックを入れてインストールをした上で
改めてコンパイルを試してみてください m(_ _)m
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.6 ) |
- 名前:スクナ 日時:2024/09/04 23:20
『デスクトップとモバイル』の欄にある全5項目と
『ゲーム』の欄にある『C++によるゲーム開発』を追加インストールしても
Visualstudio 2022を再インストールしても症状が変わりませんでした。
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.7 ) |
- 名前:管理人 日時:2024/09/05 01:22
駄目でしたか…
Visual Studio Installer の『変更』を押した際に、初期状態では『ワークロード』タブが選択されていますが
『個別のコンポーネント』タブを選択することでより細かいインストール項目の選択ができるようになっています
私の環境では以下の項目にチェックがついていましたので、もしスクナさんの環境で下記の項目で
チェックが付いていないものがありましたらチェックを付けてインストールした上で、再度コンパイルを試してみてください m(_ _;m
.NET
.NET 6.0 ランタイム(長期サポート)
.NET 7.0 ランタイム(サポート対象外)
.NET 8.0 ランタイム(長期サポート)
.NET Framework 4.7.2 Targeting Pack
.NET Framework 4.8 SDK
.NET Framework 4.8 Targeting Pack
.NET MAUI SDK for Windows
.NET SDK
.NET SDK for Android
.NET SDK for iOS
.NET SDK for Mac Catalyst
.NET ネイティブ
ML.NET Model Builder
AI アシスタンス
GitHub Copilot
SDK、ライブラリ、およびフレームワーク
Android SDK のセットアップ
Entity Framework 6 Tools
OpenJDK (Microsoft ディストリビューション)
TypeScript サーバー
v143 ビルド ツール用 C++ v14.34 (17.4) MFC (x86 および x64)
v143 ビルド用 C++ v14.34 (17.4) ATL (x86 および x64)
Windows 10 SDK (10.0.19041.0)
Windows 11 SDK (10.0.22621.0)
Windows ユニバーサル CRT
最新の v143 ビルド ツール用 C++ ATL (x86 および x64)
クラウド、データベース、およびサーバー
SQL Server の CLR データ型
ゲーム開発スイート
DirectX 用グラフィックス デバッガーおよび GPU プロファイラー
画像と 3D モデルのエディター
コード ツール
ClickOnce Publishing
Developer Analytics Tools
NuGet のターゲットおよびビルド タスク
NuGet パッケージ マネージャー
テキスト テンプレート変換
コンパイラ、ビルド ツール、およびランタイム
C# および Visual Basic Roslyn コンパイラ
C++ 2022 再頒布可能パッケージの更新プログラム
MSBuild
MSVC v143 - VS 2022 C++ ARM ビルド ツール (最新)
MSVC v143 - VS 2022 C++ ARM64/ARM64EC ビルド ツール (最新)
MSVC v143 - VS 2022 C++ x64/x86 ビルド ツール (最新)
V143 ビルド ツールの C++ ユニバーサル Windows プラットフォームサポート (ARM64/ARM64EC)
Windows 用 C++ CMake ツール
デバッグとテスト
.NET プロファイル ツール
Boost.Test のテスト アダプター
C++ AddressSanitizer
C++ のプロファイル ツール
JavaScript 診断
Just-In-Time デバッガー
Test Adapter for Google Test
未カテゴリ化
Live Share 2022
開発作業
C# および Visual Basic
C++ Android 開発ツール
C++ コア機能
F# 言語サポート
IntelliCode
JavaScript および TypeScript の言語サポート
Xamarin (サポート対象外)
リモート iOS シミュレーター
拡張機能
ML.NET Model Builder 2022
Single-project MSIX Packaging Tools for VS 2022
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.8 ) |
- 名前:スクナ 日時:2024/09/05 09:57
上記個別コンポーネントをインストールしても変わりませんでした。
以下、詳細情報にあるエラーを記載します。
アクティブなソリューションのデバッグ ソース ファイルの設定では、デバッガーがファイル minkernel\crts\ucrt\src\appcrt\tran\_round.h の検索をユーザーに要求しないことが示されています。
ソース ファイル 'minkernel\crts\ucrt\src\appcrt\tran\_round.h' が見つかりませんでした。
|
Re: ランタイムライブラリをマルチスレッドDLLにしないと「_round.hが見つかりません」など、数学関数が見つからず使えな ( No.9 ) |
- 名前:管理人 日時:2024/09/06 00:00
駄目でしたか…
お試し頂きありがとうございます
> アクティブなソリューションのデバッグ ソース ファイルの設定では、デバッガーがファイル minkernel\crts\ucrt\src\appcrt\tran\_round.h の検索をユーザーに要求しないことが示されています。
> ソース ファイル 'minkernel\crts\ucrt\src\appcrt\tran\_round.h' が見つかりませんでした。
_round.h というファイルは私のPCにも存在しないようです
ビルド時に画面下部に表示される『出力』タブを選択して、『出力元』を『ビルド』にした際の出力はどのようになっていますでしょうか?
例えば『サンプルプログラム実行用フォルダ』の VisualStudio_2022用.sln を開いてビルドした際は以下のような出力となります
23:52 でビルドが開始されました...
1>------ ビルド開始: プロジェクト: VisualStudio_2022用, 構成: Debug x64 ------
1>test.cpp
1>VisualStudio_2022用.vcxproj -> M:\DxLib\Release\Library\Package\DxLib_VC\サンプルプログラム実行用フォルダ\x64\Debug\VisualStudio_2022用.exe
========== ビルド: 成功 1、失敗 0、最新の状態 0、スキップ 0 ==========
=========== ビルド は 23:52 で完了し、01.004 秒 掛かりました ==========
文法エラーがあった場合( double を duble と誤記述した場合 )は以下のような出力になります
23:55 でビルドが開始されました...
1>------ ビルド開始: プロジェクト: VisualStudio_2022用, 構成: Debug x64 ------
1>test.cpp
1>M:\DxLib\Release\Library\Package\DxLib_VC\サンプルプログラム実行用フォルダ\test.cpp(14,2): error C2065: 'duble': 定義されていない識別子です。
1>M:\DxLib\Release\Library\Package\DxLib_VC\サンプルプログラム実行用フォルダ\test.cpp(14,8): error C2146: 構文エラー: ';' が、識別子 'i' の前に必要です。
1>M:\DxLib\Release\Library\Package\DxLib_VC\サンプルプログラム実行用フォルダ\test.cpp(14,8): error C2065: 'i': 定義されていない識別子です。
1>M:\DxLib\Release\Library\Package\DxLib_VC\サンプルプログラム実行用フォルダ\test.cpp(16,21): error C2065: 'i': 定義されていない識別子です。
1>プロジェクト "VisualStudio_2022用.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 成功 0、失敗 1、最新の状態 0、スキップ 0 ==========
=========== ビルド は 23:55 で完了し、00.998 秒 掛かりました ==========
よろしければ『'_round.h' が見つかりませんでした。』と出力されたビルド時の出力の全文をこちらに貼り付けて頂けないでしょうか? m(_ _;m
|