質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1675閲覧

VS2017でx64ビルドすると「外部シンボル "HtmlHelpW" は未解決です」とエラーが出る。

T.Adams

総合スコア40

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/01/16 04:59

編集2020/01/16 06:58

質問事項

Windows Server 2019環境で、Visual Studio 2017 Professionalを使用してC/C++のソリューションファイルをx64|ReleaseでSJISビルドしておりますが、以下のエラーが検出されました。原因が分からず困っています。なお、同様のビルド設定で、OSのみWindows Server 2016環境に変更した場合、正常にリビルドできております。何かご存じの方いらっしゃいますか?

エラー内容

エラー LNK2001 外部シンボル "HtmlHelpW" は未解決です。 test D:\xxx.test.obj

試したこと

 
以下のサイトで、同様の質問があり、SDKのバージョンを確認したのですが、上記の環境のVisual Studio Installer内には、Windows SDK(6.0A)が存在しません。

https://qa.codeflow.site/questions/85872/linking-htmlhelp-lib-with-x64

調査でわかったこと

現在調査を進めていましたところ、ソリューションファイル外部依存関係に格納されているHtmlhelp.hファイルのプロパティに記載される完全パスと相対パスが、Windows Server 2016と2019で異なることに気が付きました。さらに2つの格納先のhtmlhelpファイルには差分がありました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

32bit/64bitに関わらずHtmlHelpW関数を使うには
Htmlhelp.lib
をリンクする必要があると思いますが、それは設定されているのでしょうか?

投稿2020/01/16 07:54

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

T.Adams

2020/01/17 00:20 編集

ご質問ありがとうございます。リンクの確認行いました。[プロパティ]→[リンカー]→[入力]→[追加の依存ファイル]を確認したところ、Htmlhelp.Libの記載があります。ただし、1点気になるのは、[プロパティ]→[リンカー]→[全般]→[追加のライブラリ ディレクトリ]が空欄になっていることです。つまり、追加する静的リンクファイル名のみ指定し、そのファイルの格納先ディレクトリが指定されていないことが原因のように思えます。 しかし、ビルドが成功しているWindows Server 2016の環境でも、ビルドが失敗したWindows Server 2019の環境でも同様の設定です。 なお、リンクに関しては以下のサイトを参考にさせていただきました。 https://corgi-lab.com/windows/vs-external-library/
T.Adams

2020/02/14 19:17 編集

takabosoft様のご回答のとおり、リンクがされておりませんでした。Windows 2016の正常にビルドできる環境では、[追加のライブラリ ディレクトリ]は空欄であったため、正常の環境と同じ設定にすべきであると考えが固執しておりました。WIndows Server 2019の環境のC:\Program Files (x86)\Windows Kits\8.1\Include\um 配下にHtmlhelp.libファイルが存在するため、[追加のライブラリ ディレクトリ]にこのパスを指定したところ、libファイルが読み込まれ正常にビルドできました。
guest

0

現在調査を進めていましたところ、ソリューションファイル外部依存関係に格納されているHtmlhelp.hファイルのプロパティに記載される完全パスと相対パスが、Windows Server 2016と2019で異なることに気が付きました。さらに2つの格納先のhtmlhelpファイルには差分がありました。引き続き調査します。

投稿2020/01/16 05:29

T.Adams

総合スコア40

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問