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

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

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

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Windows XP

Windows XPは、2001年にMicrosoft社が発売したOSです。 一般家庭向けの「Windows XP Home Edition」とビジネス用途向けの「Windows XP Professional」の2つがあり、 一般家庭向けのWindowsでは初めてNTカーネルが採用されました。

Q&A

3回答

1451閲覧

WindowsXP対応

tmk2z

総合スコア10

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Windows XP

Windows XPは、2001年にMicrosoft社が発売したOSです。 一般家庭向けの「Windows XP Home Edition」とビジネス用途向けの「Windows XP Professional」の2つがあり、 一般家庭向けのWindowsでは初めてNTカーネルが採用されました。

0グッド

0クリップ

投稿2021/11/28 00:52

前提・実現したいこと

WindowsXP(SP3)にて、ハードウェアを制御するAPIを作成しなければなりません。
ハードウェア(HW)は民生品でXPサポートと記載あるのですが、新製品で検証できていないようです。
ただ、インターフェイスはUSB2.0ですので、現在XPからHWは認識されております。
(使用する準備できましたというWindowsのポップアップが出ます)

開発予定のAPIをコールする言語は、VisualStudio2005 VC++です。

現在別の製品では、VS2013 VC++でAPI開発しx86でコンパイル→DLL化することで
XP上でAPI呼び出し、制御できていますが、こちらの別製品は
製品サプライヤーに協力していただきました。

しかし上記民生品はサポートしてくれないようで、これを無理やり
VS2013等で開発して、XP上でHW制御できるようになるか
見識がなく想像ができません。

そこで、予想できる状況や、XP対応におけるハードル、
注意すべき点をアドバイスいただければ助かります。

お手数をおかけしますが、よろしくお願いいたします。

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

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

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

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

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

KoichiSugiyama

2021/11/28 02:30

上記文章からはちょっと状況を理解できなかったのですが、対象とするハードウェアの製品サプライヤーに断られた、ということでしょうか?それとも別製品(メーカーも違う?)のサプライヤーだから断られたということでしょうか。まずは対象とする製品のメーカーが判ればそちらに問い合わせた方が速く解決するのではないかと思います。
tmk2z

2021/11/28 14:07

ご指摘ありがとうございます。 新しく開発したいAPI対応製品は、海外製品でここ1年以内に販売された測定器です。 その測定器のスペックがどうしても必要で、社内製品導入したい、と思ったのがきっかけです。 メーカー技術者へ確認しましたが、”XP”へのサポートは確認してない”と回答があっただけでした。 そのメーカーのアプリケーションも、Win10では動きますがXP上では、”iphlpapi.dll”がない、 とのエラーで動きません。 なので公開されている測定器の開発環境を利用してAPIを作ろうと思ったのですが WinXPとWin10環境を行き来するにあたって、基本的な問題点が分かっていないので 何かコツや、気を付けなければならない点を知りたかったため、質問させていただきました。
sousuke

2022/01/13 02:27

どうしてもWindowsXPから直でハードとして認識しないといけないのでしょうか? 例えばWindows10で普通に使って 「WindowsXPはWindows10とそのハードのデータをリアルタイムに近いにやり取りをする」 プログラムを作ればいいのでは?Windows10をサーバ、XPをクライアントにする感じで。
guest

回答3

0

以前Windows XPで古いドライバーとアプリケーションの動作確認時に書いたメモをブログにしたものです。ご参考までに。

http://www.devdrv.co.jp/hidaka/node/71

コツはまずインストール可能な古いマザーボードを中古で探すこと。

Windows XP上で動作するVisual Studioは、Visual Studio 2010 SP1 が最終版であるという事。

勿論Windows 10をはじめ、以降でビルドしたアプリケーションやドライバーは、Windows XP上でもスタティックリンクやランタイム等の工夫次第で動作します。

思い出したので補足します。私が開発した時は、Windows XPとVisual Studio 2010 SP1の古い環境は恐ろしく使い難かったため、ほとんどをWindows 10 32bit版とVisual Studio 2019環境で開発、デバッグして、Windows XPはアプリケーションとドライバーの動作確認ぐらいしか使いませんでした。

投稿2021/11/28 13:56

編集2021/11/28 14:06
ahidaka

総合スコア391

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

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

0

実際にやってみればどうでしょう。
その上で問題がでたなら、聞いていただければ。

投稿2021/11/28 01:20

y_waiwai

総合スコア88042

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

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

0

ハードウェア(HW)は民生品でXPサポートと記載あるのですが、
新製品で検証できていないようです。
ただ、インターフェイスはUSB2.0ですので、
現在XPからHWは認識されております。

質問に記載されている要求仕様を満たすためには、その前提として、ターゲット USB デバイスをサポートする、USB クライアント デバイス用のドライバが存在していることが必須となりますが、その辺の認識は大丈夫ですか?
「現在XPからHWは認識されております。」とのことですが、デバイス マネージャー上でのターゲット USB デバイスの表示は、対応するデバイス クラス ノードの下に、正しく表示されているのでしょうか?
該当 USB デバイスが [その他のデバイス] の下に表示されていたり、あるいは黄色い '!' マークの付いたエラー状態での表示となっている場合は、別途 USB クライアント デバイス用ドライバが必要になる可能性があります。

ターゲット USB デバイスがホントに XP 上でも正常認識されているのであれば、該当 USB デバイスを XP 上でサポートすることは可能であると思われますが、その場合 UAC 関連の違いから、DLL の作成だけはたぶん無理です。
該当 USB デバイスのメーカーから提供されているアプリケーション (exe) と同等のプログラムを別途開発する必要があると思います。
その場合は、該当アプリをデバッガをアタッチさせた状態で実行させ、どんな API をどんなパラーメータでコールしているのかを把握するための、リバースエンジニアリングが必要になります。

投稿2021/11/29 08:10

Bego

総合スコア69

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

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

tmk2z

2021/11/29 08:52

ご回答ありがとうございます。 USBは、メーカーサポートサイトから別途XP用の FTDIのドライバーを入れるよう追記があって、それを使うことで XPから認識されております。 UACですか。。。知りませんでした。 実はAPIの実装は、もともと考えていたことで、最終的にはこのハードウェアをコールするAPIが 私の作ったDLLをたたき、その中で公開されている計測器APIをたたくような形で考えております。 本日、x86で簡単なアプリケーションを作ってみましたが、 ”重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 警告 LNK4272 ライブラリのコンピューターの種類 'x64' がターゲットのコンピューターの種類' X86' と競合しています” とエラーが出ています。。。 メーカーのライブラリをx86でコンパイルしてもらうとかで、簡単に動くようになるのでしょうか。。。
Bego

2021/11/29 09:09

> 実はAPIの実装は、もともと考えていたことで、 > 最終的にはこのハードウェアをコールするAPIが私の作ったDLLをたたき、 > その中で公開されている計測器APIをたたくような形で考えております。 そのメーカー提供のアプリを XP 上で起動させた場合、どうなるんですか? Process Monitor でキャプチャ ログを採取するか、WinDbg でデバッグ トレースするか、とにかくきちんと調査してなんの API で失敗するのか、きちんと調べることをお勧めします。 (きちんと調査をしないことには、何も始まらないのでは?) > 本日、x86で簡単なアプリケーションを作ってみましたが、 > ”重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 > 警告 LNK4272 ライブラリのコンピューターの種類 'x64' がターゲットのコンピューターの種類' X86' と競合しています” > とエラーが出ています。。。 それは、単に質問者さんが作ったアプリ プロジェクトの問題であって、元々の質問とは無関係なのでは?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問