• ベストアンサー

C++でNTサービスプログラムの作り方

Cの初心者なのですが クライアントで動く C++でのNTサービスプログラムの作り方を 教えてください。 環境 WINNT4.0 VC6.0 宜しくお願いします。

  • phoo
  • お礼率85% (107/125)

質問者が選んだベストアンサー

  • ベストアンサー
  • nakashi
  • ベストアンサー率51% (21/41)
回答No.2

リソースキットのSRVANY.EXE(だっけ?少し名前違うかも)を使えば、 普通のEXEでもサービス登録できるかも。

参考URL:
http://www.sfdata.ne.jp/windev/iij/htdocs/msg13093.html
phoo
質問者

お礼

大変参考になりました。ありがとうございます

その他の回答 (1)

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.1

NTのサービスは高度な知識がいります。少なくとも私には難しいです。 「クライアントで動作する」という部分がよく分からないのですが、 私は下記の本を買って読みました。 SOFTBANK社の「WindowsNT Service Programming」 (Kevin Miller-著 豊田 孝-翻訳・監修) 馬鹿にするな!って思われたらすいません。 NTサービスプログラマでないんで一応一般人としておきます。

phoo
質問者

お礼

やっぱり自分から勉強しないとだめですね。 参考に本屋へも行ってみます 早々の回答ありがとうございました。

関連するQ&A

  • NTサービスへの登録方法

    VCで作成したexeをNTサービスへ登録する方法ってないですか? exe自体は、コンソール画面へ出力するだけの単純な動作のプログラムです。 NTサービスとは、コントロールパネル→管理ツール→サービスのことです。

  • Tomcat4.1のNTサービスについて

    JavaでWebアプリケーションの開発をしています。 開発環境はクライアントOS:winXP、JDK1.4、Eclipse2.1.3、Tomcat4.1.30、データベースはAccess2002を使用しています。データベースへはJDBC-ODBC経由で接続しており、 開発環境では問題なくデータベース参照、更新が可能です。 次にクライアント~サーバー間のテストをするために、サーバー(OS:win2000)側へTomcatをNTサービスを適用した状態でインストール、データベース、モジュール(WARファイル)を移設、データベースを参照しようとしたところ、アクセスできなくなりました。 TomcatをNTサービス適用せずに手動で起動するばあいには、開発環境と同じように問題なく稼動します。 NTサービスを適用した状態でデータベースにアクセスできるようにするには、どのような設定が必要なのでしょうか?またはODBC以外の接続方法を検討する必要があるのでしょうか? ご存知の方、おられましたらアドバイスお願いいたします。

    • ベストアンサー
    • Java
  • NT4.0のサービスへの登録について

    教えてください。 現在、NTサーバーで動作するシステムを構築しております そこでプログラムを常駐させる為に、 NTのサービスへ登録追加したいと考えております。 サービスの機能として後から登録できないようですが 簡単に、サービスへユーザープログラムを登録する方法は ないでしょうか? 登録・削除できるフリーソフトとかでもあるようですが 実績のある登録ソフト、または方法を存知でしたら教えてください。

  • NT診断プログラムについて

    早速ですが、NT診断プログラムについてお聞きします。 C:\WINNT\SYSTEM32\winmsd /a /f if %ERRORLEVEL% NEQ 0 echo %ERRORLEVEL% ERR >> D:\err.txt 上記のように記載した、batファイルを作成し、実行すると、 winmsdは実行され、ファイルが出力されるのですが、 ERRORLEVELは-1が出力されます。 原因がお分かりになる方、いらっしゃいましたら、おしえてくださいませ。 また、%ERRORLEVEL% を 0にする方法をご存知の方いらっしゃいましたら、おしえてください。 これってマイクロソフトのバグなんですかね??

  • MacでC++プログラム

    MacでC++プログラムをやろうと思うのですが、いままでVC++を使っていたので、 なにかそれに似た環境でできないものでしょうか? 実際にやってらっしゃる方がいらっしゃれば教えてください。 あと、CodeWarrier(←スペル?)ってありますよね?あれはいったいどんなものなんでしょうか?C(C++)のコンパイラみたいに考えていいのですか?

  • Cドライブに98SEもNTも入っているんですが、NTをアンインストールしたい

    私のPCは、 FatのパーティションにWindows98SE(Cドライブ)、 NTFSのパーティションにWindowsNT4.0(NTから見たときにDドライブ) が入っていました。 (その他にもパーティションがあるのですが、省略します。) 実際にはNTは使わなかったので、 NTをアンインストールして、98SEだけにしようと考えました。 私は、NTFSのパーティションを削除すればいいと思ったのですが、 98SE側からはNTFSのパーティションが見えないので、 「NTのセットアップをFDから立ち上げて、削除すればいいのだろう」 と考えて、NTのセットアップでNTFSの領域を削除したつもりが、、、、、 なぜかNTのインストールをしてしまいました。 (わたしには、NTのセットアップの画面(ブルーバックの画面)って操作がわかりづらいんです。^^;)) このNTのインストール先はCドライブです。 つまり、Cドライブには98SEとNTと両方インストールされた状態になってしまいました。 (この時点では、NTFSのパーティションにあったNTは、そのまま残っていたんだろうと思います。) 私はNT(これはCドライブのほうのNTだと思われます。)を立ち上げて、Dドライブ(NTFSの領域)をFATでフォーマットしました。 問題は、Cドライブに入ってしまったNTをアンインストールしたいのですが、 どうすればよいでしょうか。 Cドライブには、Windowsというフォルダも Winntというフォルダもあります。 Cドライブをフォーマットしてしまっては、98SEまでなくなってしまいます。 今は、OSの選択画面(OS Loader)には、WindowsNTとWindowsNT[VGAmode]の組が2つもあるのですが、 それもなんとかしたいのです。 (というか、Windows98SEだけになれば、OSを選択する必要もなくなる。) なお、ハードディスクは1つです。 ごちゃごちゃしてわかりづらいかもしれません。よろしくお願いいたします。

  • C#で簡単なサービスアプリを書きたい

    VS2005のC#でサービスのプログラムを書きたいのですが、何かサンプルはありますか? 雛形があると助かるのですが 例えばポート番号10000で待ち受ける、クライアントから入力された文字を返すだけのエコーサーバーをサービスアプリケーションとして書きたいです。

  • サービス化でのネットワーク接続

    WindowsNTServiceProguramingを買いまして 仕事で活用しております。 例題2秒おきにログをかくサンプルにプログラムを挿入しました。 クライアントの時刻とサーバの時刻をファイルに書くプログラムです サービスの中で、ネットワークの接続をしようとすると ERROR_BAD_NET_NAMEのエラーがかえってきます。 サービスでなければ稼動するのですが エラーで先に進みません 下記のようなコーデングなのですが NETRESOURCE nr; char OutNetFile[]="\\\\server\\c$"; ZeroMemory( &nr, sizeof( nr ) ); nr.lpLocalName = (LPTSTR)NULL; nr.lpRemoteName = (LPTSTR)OutNetFile; DWORD dwret = WNetAddConnection2( &nr,(LPTSTR)"passwd",(LPTSTR)"userid",0); 環境NT4.0,VC6.0 お忙しい中だとはおもいますが回答、アドバイスをいただければ たいへんありがたいのですが。宜しくお願いします。

  • C#プログラム Webサービスについて

    C#プログラム Webサービスについて 今回、VisualStudio C#での開発があり、 システム間の連携をWebサービスで行うことになりました。 そこでwebサービスの実行についての質問があります。 方法1.VisualStudioのサービス参照の追加し、 そこからwebサービスのメソッドを呼び出すという方法(WSDLが自動生成される) 方法2.直接webサービスのURLに引数を記述し呼び出す方法 この2点の違いがいまいちわかりません。方法1は複雑なのですが、使用するメリットはあるのでしょうか。 今回開発するwebサービスは特に呼び出し元へ値を返しません。 その場合、方法2を選択しても問題ないのでしょうか? そもそも方法2はwebサービスの使用方法として、あっているのでしょうか? プログラム初心者なもので、 質問がまとまっておりませんで申し訳ございません。 有識者のかた、質問内容以外でもwebサービス使用についての 考慮すべき点などありましたら、ご回答のほど宜しくお願いいたします。

  • C2146を回避するにはどうしたら良いのでしょうか

    いつもここにお世話になってますm(__)m。今回は下記の様なエラーが出てしまい、困っております(--;)。 <エラー内容> 1>C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C2146: 構文エラー : ';' が、識別子 'PVOID64' の前に必要です。 1>C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません エラーが起こっているのはwinnt.h内の「typedef void * POINTER_64 PVOID64;」という部分なのですが(他にもありますが)、winnt.hは弄ってないのです。 ネットで検索したところインクルードファイルディレクトリの指定の順番が怪しそうなので、「ツール」「オプション」でPlatformSDK関連が一番上に来るように変更(実行可能ファイル、インクルードファイル、ライブラリファイル)してリビルドしてみましたが結果は変わりませんでした。 他にチェックすべき点をお教え頂けると助かります。 [環境] ・WindowsXP(SP2) ・Visual Studio 2005 Professional(C++、SPなし)