トップ | puarts.com
ロゴ
「Windows」に関連する記事一覧
0  

ハードディスク交換のために Windows 7 を別のディスクに再インストールしようとしたらライセンス認証に失敗してしまったので、ライセンス認証窓口に電話してライセンス認証手続きを行いました。

誰かの参考になるかもしれないので、電話でのやりとりを書いておきます。

Mircosoftライセンス認証窓口については下記ページを参照
https://support.microsoft.com/ja-jp/kb/326851

自動音声

  1. 日本語か英語かを聞かれる
  2. 日本語を選択
  3. 6桁か7桁のインストールID を入力しろといわれる
  4. どのIDのことかよくわからなくて入力できない(プロダクトIDではなかった)
  5. 入力できずに何回も自動音声に失敗したと言われた後、オペレータに繋ぐか聞かれる
  6. オペレータに繋ぐを選択する
  7. 待たされることなく即オペレータに繋がる

オペレータ

  1. インストールIDを聞かれる
  2. どのIDのことかわからないと答える
  3. コンピュータを右クリックしてプロパティを開き、ライセンス認証を行うリンクを開くよう指示される
  4. ライセンス認証をオンラインで行うを選択するよう指示される
  5. ライセンス認証を行うとエラーになることを伝える
  6. いくつか質問していいか聞かれる
  7. いいと答える
  8. 契約についていくつか質問される(契約は個人か法人か、ライセンス契約者本人かなど)
  9. 質問に答える
  10. Windows + R で「ファイル名を指定して実行」ウィンドウを起動するよう指示される
  11. slui 4 と入力してEndterするとライセンス認証画面が表示される
  12. 国を日本に設定し、次へをクリックすると電話で認証を行うウィンドウに遷移する
  13. オペレータにウィンドウに表示されたインストールIDを告げる
  14. オペレータから指示通りの数値を入力する
  15. 次へをクリックしてライセンス認証完了

インストールIDをオペレータに伝えるやりとりや、オペレータからの指示される数値入力で結構時間がかかり、電話での認証は全部で10分くらいかかりましたが、オペレータの対応は丁寧でした。

最近、自宅の Windows 10 の PC のシステムドライブの重要なファイルが破損してしまい、OS を再インストールせざるを得ない状況になりました。 SSD をもう 6 年も使い続けていたので仕方ないです。よく持ったほうです。

即新しい SSD を通販で注文しましたが、ひとまず今の SSD に Windows 7 を再インストールしてしばらくの作業は凌ぐことに。 再インストール後、Windows アップデートの嵐。 最初は 18 個、4 個程度のアップデートがインストールされ、再起動しました。 その後、更新プログラムの確認を行ったら「更新プログラムを確認しています」から一向に処理が進まなくなりました。

ネットで調べると似たような症状の人がたくさんいたので、それらの情報を参考にして、いろいろと対処策を試しましたが、改善しませんでした。

2 時間待っても進まなかったので、これはもうだめかと思いたが、念のため一晩放置。

そうすると、朝、224 個のアップデートが見つかったと表示され、確認が完了していました。

単にアップデートの確認に時間がかかっていただけだったようです。 そりゃ、再インストールしたら数年分のアップデートが入るわけですから当然といえば当然なんですかね。

再インストール後は一晩くらい待たないとだめってことを学習しました。 とりあえず、Windows アップデートの確認が進まなくなったら

c:/Windows/WindowsUpdate.log

の中身を確認しつつ、一晩くらい放置してみるのがいいですね。 一晩経ってもログに処理が進んでいる形跡がなかったら、ネット上の情報を参考にいろいろ試してみるのがよさそうです。

waveInOpen の dwCallback に CALLBACK_FUNCTION を指定した時に waveInProc コールバック内で waveInAddBuffer をコールすると、スレッドがフリーズして処理が返ってこなくなる問題に少しはまりました。

コールバックの外から呼ぶとフリーズしないので、メインスレッドの処理では何もしないようにしても直らない...と思ったら、MSDN の waveInProc のページにコールバックでシステム定義関数呼ぶなと書いてありました。

EnterCriticalSection、LeaveCriticalSection、midiOutLongMsg、midiOutShortMsg、OutputDebugString、PostMessage、PostThreadMessage、SetEvent、timeGetSystemTime、timeGetTime、timeKillEvent および timeSetEvent を除き、アプリケーションでコールバック関数内からシステム定義関数を呼び出さないようにしてください。ほかのウェーブ関数を呼び出すと、デッドロックの原因となります。

悩む前にドキュメントちゃんと読めってやつですね...

C++で簡易Assert用のマクロを作っていて、スタックバックトレースしたくなったのですが、Windowsで簡単にコールスタックを出力する方法がないか探してみたところ、下記のリンク先に書いてある関数が短くていい感じだったので、リンクを貼っておきます。

http://stackoverflow.com/questions/5693192/win32-backtrace-from-c-code

こちらにもincludeなども含めてソースコード載せておきます。

Source Code:


#include <windows.h>
#include <imagehlp.h>

#pragma comment(lib, "imagehlp.lib")

void printStack( void )
{
     unsigned int   i;
     void         * stack[ 100 ];
     unsigned short frames;
     SYMBOL_INFO  * symbol;
     HANDLE         process;

     process = GetCurrentProcess();

     SymInitialize( process, NULL, TRUE );

     frames               = CaptureStackBackTrace( 0, 100, stack, NULL );
     symbol               = ( SYMBOL_INFO * )calloc( sizeof( SYMBOL_INFO ) + 256 * sizeof( char ), 1 );
     symbol->MaxNameLen   = 255;
     symbol->SizeOfStruct = sizeof( SYMBOL_INFO );

     for( i = 0; i < frames; i++ )
     {
         SymFromAddr( process, ( DWORD64 )( stack[ i ] ), 0, symbol );

         printf( "%i: %s - 0x%0X\n", frames - i - 1, symbol->Name, symbol->Address );
     }

     free( symbol );
}

先日からDドライブにアクセス許可がありませんと表示されてアクセスできなくなってしまいました。ディスクが寿命で調子悪くなっていたのでそれのせいかと思っていましたが、なぜかディスクチェックをしてもエラーが検知されなかったので、原因を調べてみたら、単にセキュリティ設定が何らかのタイミングで変わってしまっていただけでした。ということで、そのときのセキュリティ設定の確認方法と、解決法を記しておきます。

セキュリティ設定の確認

1. すべてのコントロールパネル項目から管理ツールを開きます。

2. コンピュータ管理を開きます。

3. ディスクの管理を開き、対象のドライブで右クリックをし、プロパティを開きます。(管理ツールからでなくてもマイコンピュータのドライブ一覧から右クリックしてもプロパティを開けますが、セキュリティ設定の変更を行う場合は、自分に権限がない場合はうまくいかなくなってしまうので、一応システム側の権限からということで管理ツールを経由するように書いています)

4. プロパティダイアログのセキュリティタブを開き、グループ名またはユーザ名の項目に正しいユーザが表示されているか確認します。正常に動作しているドライブと比較して足りないものがあれば、同じものを追加する必要があると考えていいと思います。この項目が正しいドライブと同じ場合であればアクセス許可を正しく設定すればドライブにアクセスできるようになるはずです。足りないものがある場合は下記の操作で足りない項目を追加します。



グループ名またはユーザ名の追加

1. セキュリティタブの編集ボタンをクリックします。

2. 追加ボタンをクリックします。

3. 詳細設定ボタンをクリックします。

4. 検索ボタンをクリックします。

5. リストアップされた項目から追加したいグループ名、ユーザ名を選択し、OKボタンをクリックします。

6. OKボタンをクリックします。

7. 新しく加わったグループまたはユーザ項目のセキュリティ設定を正しく設定し、適用ボタンをクリックすると、セキュリティ設定の変更が開始されます。セキュリティ設定の変更が終了したら、ドライブにアクセスできるようになります。

Windowsでプログラムを起動しようとしたとき、実行ファイルが別のdllに依存し、そのdllがまた他のdllと依存関係を持っていてdllが見つからないと怒られ、動作しないことがあります。

そんなときに依存関係を調べる便利なフリーソフトをご紹介します。

Dependency Walker
http://www.dependencywalker.com/

使い方は非常に簡単で、ソフトを起動し対象のexeやdllファイルをドラッグアンドドロップするだけです。そうするとツリーテーブルで依存先のライブラリがリスト化されます。いつもと違う環境で開発ソフトを実行するときなど、足りないdllが何なのかも教えてくれるので大きな手助けとなるかと思います。

特にMayaのPlug-inとかはDLLがないとただ読み込めなくなるだけで、何が足りないかすら教えてくれないので、そういうときはこういうツールは非常にありがたいです。

Microsoftが無償配布している音声認識用のSDKであるSpeech SDKを使った音声認識プログラムを作ってみようと思い、とりあえずVisual C++でサンプルコードをコンパイルするところまでできたので手順をメモしておきます。

Microsoft Speech SDK 5.1 download
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&displaylang=en

1.SpeechSDK51.exeとSpeechSDK51LangPack.exeをダウンロードし、インストール。

2.Visual Studioの
ツール->オプション->プロジェクトおよびソリューション->VC++ディレクトリ
でincludeディレクトリにインストールされたSpeech SDKのincludeディレクトリを追加。同様にlibディレクトリにSpeechSDKのlibディレクトリを追加。

 

vcincludedir.jpg

 

これでうまくいくはずなんですが、SDKのインストールディレクトリに入っているsampleをコンパイルしてみると、Visual Studio 2008ではincludeしているヘッダshelper.hでいくつかコンパイルエラーが出ました。

3.仕方なくsphelper.hの中身を修正。
以下を修正したところ、Visual Studio 2008では動作しました。

行はだいたいの場所なので正確ではないかもしれません。
 

Hi everyone, today, I want to introduce a way of installing Microsfot Speech SDK for speech recognition, and way of using it in Visual C++.

1. Download SpeechSDK51.exe and SpeechSDK51LangPack.exe, and install them.

2.Add include path and lib path for Speech SDK to VC++ directory in Visual Studio. You can edit them on a option from Tool -> Option -> Project and Solusion -> VC++ directory.

That's all .. ummm, I could'nt compile a sample program with compile error in included header file shelper.h

3.Edit sphelper.h like below, and then I could compile sample codes

line 769 -------------
const ulLenVendorPreferred
 -> const int ulLenVendorPreferred

line 1419 -------------
static CoMemCopyWFEX(...
 -> static HRESULT CoMemCopyWFEX(...

line 2372 -------------
for (const WCHAR *psz = (const WCHAR *)lParam; *psz; psz++) {}
 -> const WCHAR *psz;
    for (psz = (const WCHAR *)lParam; *psz; psz++) {}

line 2559 -------------
SPPHONEID* pphoneId = dsPhoneId;
 -> SPPHONEID* pphoneId = (unsigned short*)dsPhoneId.m_psz;

line 2633 -------------
pphoneId += wcslen(pphoneId) + 1;
 -> pphoneId += wcslen((wchar_t*)pphoneId) + 1;

Reference
工学ナビ -音声認識システムを作ろう
http://kougaku-navi.net/speech_reco.html
 

Visual Studioでプログラムを書いていたら、突然Windows自動更新機能でOSが再起動させられました。

しまったと思い、再起動が始まってからCtrl+Sを連発するも時すでに遅し。Windowsの更新機能を切っておくのは当たり前のようにしていたのですが、ストレージを変えてからは設定するのを忘れていました。
久しぶりに感じるこのやるせない気持ち。

どこまで保存していないのか、不安に思いながらOSのアップデートを待ちました。
再起動が完了すると自動でVisual Studioが立ち上がりました。

もしや?と思うと、データを修復しますか?と訪ねられ、はいを選択したら、なんとデータはシャットダウンされた直前と同じ状態に戻りました。

Visual Studioの素晴らしい機能。

こういう突然のトラブル時にデータを救済してくれる機能は本当にありがたみを感じます。
というより、Windows自動更新で再起動する際は落ちる直前に確認メッセージをデフォルトで出すようになってないのが困ります。

おそらく、自動更新により作業中のデータを失った人はこの世の中に数知れないほどたくさんいることでしょう。

Windows Vistaからアプリケーション起動高速化のためにSuperfetchという機能が加わりました。

具体的には過去のユーザのPC使用履歴から、メモリにあらかじめプログラムやファイルを読み込んでおく機能です。

要は、PCが普段ユーザの行動を観察して、ユーザの仕事を速くできるようにためにあらかじめ仕事に必要な道具を揃えておいてくれる機能です。

私の使用OSはWindows 7なので、以降はWindows 7のSuperfetchについて書きます。

タスクマネージャを開くとキャッシュ済みという項目がありますが、この中にSuperfetchであらかじめメモリに読み込まれたデータが含まれています。



このキャッシュ済みが増えれば、当然空きメモリは少なくなります。
あらかじめデスクの上に道具を準備しておくということは、デスクの作業領域がうまっていくということです。

これでは不規則的に利用するアプリケーションを使いたいときに困ってしまわないでしょうか?

しかし、Superfetchではあらかじめ読み込んでおいたメモリは、別のアプリケーション実行の際にはすぐに解放されて使えるようにしてくれるようです。

デスクの上に準備された道具は、使っていない限り、出し入れが自由ということです。


しかし、私は疑問に思います。

出し入れがすぐにできるといっても、次に読み込むアプリケーションに必要な分のメモリを解放するという一手間がある限り、メモリに空きがなければ確実にPCの性能低下を招くのではないでしょうか?


メモリの解放という処理がそんなに簡易な処理であるとは思えません。

少なくとも、解放すべきアプリケーションやデータの種類を今までの使用履歴などから優先度で決定して、解放に必要なメモリ領域分を調べて、それに該当するメモリ領域を解放するという手間が一回の処理にあるはずです。これに新しいアプリケーションデータの読み込みが加わります。

これが一発で行われるならまだ良いですが、カーネルができるだけメモリ領域を無駄なく埋めようとするのであれば、読み込み後にまた余ったメモリを調べて、適応なプログラムをロードなんていう動作が加わる可能性があります。
これらの処理は何回かに分けて実行されることになり、処理の分割が増えれば、それだけI/Oの回数は増えるのでPCの動作は遅くなります。


実際、私は何度もPCの動作が劇的に遅くなるという状況に何度も遭遇しています。
そのときにタスクマネージャを開いてみると、決まって空きメモリが0になっています。

私の環境はメモリが6GBしかないので、それが原因でSuperfetchがうまく機能しないのかもしれません。

もともとメモリが大量に使えるという前提での機能ですから。
それに加え、私のシステムを入れているストレージは遅いので、それが原因で極端な性能低下が起こっているのかもしれません。


とにかくキャッシュ済みのメモリをすぐに使えるようにしてあるといっても、空きメモリが0になることに大きなリスクがあると私は思います。


実際、Superfetchを無効にすると極端に動作が遅くなるという現象は回避できました。

Superfetchの無効方法を以下に記します。

■Superfetchを無効にする方法
1. Windowsキー+rを押し、ファイル名を指定して実行を開き、services.mscと入力し実行し、サービスウィンドウを開きます。もしくは、
コントロールパネル→すべてのコントロールパネル項目→管理ツール→サービス
からサービスウィンドウを開くことができます。

2. Superfetchという項目を一覧から探してダブルクリックでプロパティを開きます。
spfetch1.gif

3. Superfetchのプロパティでサービスの状態を停止にし、スタートアップの種類を無効にします。
spfetch0.gif

4. OKをクリックすれば、Superfetchは無効になります。
ただし、一度再起動しなおすか、休止状態にしなければ、今までSuperfetchで確保されたメモリは解放されないので注意して下さい。


Superfetchは仕事場など普段の作業がルーチン化しているような場では効果を発揮する機能だと思いますが、個人使用のような不規則的な作業を行う環境であれば逆に動作を遅くさせる原因となる可能性があります。

また、メモリが少ない場合や、I/Oが遅い環境では同様に動作を極端に遅くする原因になり得ます。


個人使用のPCを利用していて突然動作が極端に遅くなってしまう場合、Superfetchを疑ってみると解決するかもしれません。

本日、外付けハードディスクがクラッシュしました。

ディスクの中には大事な研究データや、今まで作った楽曲や映像などのプロジェクトデータなどが入っていました。かなり、絶望的な気分になりました。

今回のクラッシュは、ファイルシステムの破損により、ディスクにアクセスできなくなるというものでした。
エクスプローラではディスク自体は認識されるものの、0バイトと表示され、利用するにはフォーマットが必要ですと、ディスクのフォーマットを促されます。

しかし、データは破損していないので、ファイルシステムさえ元に戻せれば、ディスクを復旧できるため、フォーマットなんてする必要はありません。

以下がコマンドプロンプトからディスクを復旧する手順です。

コマンドプロンプトからクラッシュしたディスクを復旧する
1. Windowsキー+rでファイル名を指定して実行ウインドウを開きます

2. cmdと入力して、コマンドプロンプトを開きます。

3. chkdskコマンドを実行します。復旧したいディスクドライブをGドライブとすると、

chkdsk g: /f /r

Hドライブだとすると、

chkdsk h: /f /r

という風に入力して、Enterキーで実行します。
このchkdskコマンドはディスクの検証と修復を行うコマンドで

/Fオプション → ディスクのエラーを修復する
/Rオプション →  不良セクタを見つけ,読み取り可能な情報へ回復する

というオプションを利用すると、ディスクのエラーを自動的に修復してくれます。

データの物理的な破損でなければ、これで大抵は元に戻るようですので、ハードディスクがクラッシュして、ディスクにアクセスできなくなっただけの場合は、一度試してみると良いと思います。

私も今回はこの方法で治り、一安心しましたが、バックアップだけはとっておくようにしようと思いました。

--------------------------------
追記
メニュの名称の使い方が誤っているとご指摘をいただいたので追記でこの記事の一部の言葉を修正させていただきました。右クリックで出るコンテキストメニューを例にしているのにも関わらずプルダウンメニューという言葉を使用してしまっていたので、それらをプルダウンメニューやコンテキストメニューという表現に書き換えました。
この記事を読んで混乱を招いてしまった方がいましたら、この場をかりてお詫び申し上げます。
--------------------

最近、右クリックしたときのメニューやIEやFirefoxなどのブラウザ、その他にもすべてのアプリケーションにおいて、プルダウンメニューやコンテキストメニューが左側に表示されるようになってしまいました。

ちなみにOSはWindows 7です。

menudropalignment_left.jpg

どうやらレジストリが何らかの影響で変化してしまったようです。
ネットで調べてみると、

HKEY_CURRENT_USER\Control Panel\Desktop

にあるMenuDropAlignmentが1になっていると左側になってしまうという情報を入手することができました。
しかし、レジストリエディタで調べてみたのですが、MenuDropAlignmentは定義されていませんでした。

定義されていない場合は、標準である右表示になるはずですが、なぜか左表示になってしまいました。

さらに調べてみると、どうやら、

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

にもMenuDropAlignmentがあり、こちらに定義されている場合はこちらの値が優先されてしまっていたようでした。

実際にレジストリエディタで調べてみると確かにMenuDropAlignmentがあり、値が1になっていました。

それを0に書き換えます。


 
その後、PCを再起動すると、無事にプルダウンメニューやコンテキストメニューが右表示に戻りました。

menudropalignment_right.jpg
 

それでは、改めてプルダウンメニューやコンテキストメニューの表示を左表示から右表示に戻す手順を書きます。

改めて言いますが、私の使用しているOSはWindows 7ですので、その他のバージョンには該当しない場合がありますのでご了承下さい。

プルダウンメニュー・コンテキスメニューを左表示から右表示に戻す方法

1. Windowsキー+rでファイル名を指定して実行ウインドウを開きます。

2. regeditと入力して、OKをクリックしてレジストリエディタを起動させます。

3. レジストリエディタで次のパスを調べます。

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows

そこにMenuDropAlignmentがあり、1になっていれば、その値を0に書き換えます。
もし、そこにはMenuDropAlignmentがない、もしくは0になっている場合は、次のパスを調べます。

HKEY_CURRENT_USER\Control Panel\Desktop

そこでMenuDropAlignmentを0に設定します。

4. レジストリエディタを閉じて、PCを再起動します。


以上で、元に戻るはずです。

もし、同じような状況に陥ってしまって困っている方がいたら是非試してみて下さい。
windows 7でペンタブを使ってみたんですが、XPのときと違い、ずっと筆で押したままにしてると右クリック扱いになったり、やたら動作が重たかったりしました。

しばらく、我慢して操作していましたが、とてもイライラしました。

設定で変えられないかとコントロールパネルで見たら、windows 7には「ペンとタッチ」という項目にプレスアンドホールドとフリックの設定がデフォルトでオンになっていました。

先日、友人からi-phoneのフリック機能を使わせてもらいましたが、かなり便利だと思いました。
確かに直感的で一度マスターしてしまえば、高速に入力できます。

しかし、このインターフェイスをPCのペンタブに使うのはまだ早いと思いました。なんせ、この機能のせいで入力のスムーズさが失われるくらいですから。
もっと、マシンが速くなって、動作に影響が出ないレベルになってからデフォルトにすべきだと思います。

これは全てのUIに言えると思いますが、動作が遅くなるとユーザに感じさせるレベルだったら、無駄な視覚効果や余計な機能をデフォルトにしないでほしいものです。

何はともあれ、ペンタブの設定はもとに戻せるので、解除方法を載せておきます。

まずはプレスアンドホールドの設定解除からです。

1.コントロールパネルから「すべてのコントロールパネル項目」を表示して「ペンとタッチ」という項目をダブルクリックして、「ペンとタッチ」の設定ウインドウを開きます。

2.設定ウインドウの「プレスアンドホールド」を選択して、「設定」をクリックします。



3.新規に現れたウインドウで「プレスアンドホールドを右クリックとして認識する」のチェックをはずします



これでプレスアンドホールドの設定は解除されます。


次にフリックの設定の解除です。

1.「ペンとタッチ」のウインドウで「フリック」というタブを開きます。

2.「フリックを使用してよく実行する操作を素早く簡単に行う」のチェックをはずします。



これだけでフリックも動作しなくなります。

これだけでペンタブの反応がかなりよくなるので、どうしても必要でなければ、これらの設定を解除することをお勧めします。

新しいPCWindows 7をインストールしたときの話ですが、OSを入れたときにファイルシステムをフォーマットしないで未割当領域にOSを入れてしまったために、電源を切ったらデータが全部消えてしまいました。

ハードディスクをフォーマットしないでOSを入れるということ自体できてしまったのが不思議ですが、ディスクのファイルシステムの情報にはbadと表示されていました。 

水の入っていない水槽で魚を飼おうとしたようなものですかね。

いくつかアプリケーションをインストールした後だったので、電源をつけてディスクが全くの空だったのを見たときはショックでしたが、ディスクをフォーマットしないで利用しようとすると電源を切ったときにデータは消えるということがわかり、ひとつ勉強になりました。

私の持っているハードディスクの容量が一杯になってしまったので、無駄なファイルを消そうと、ファイルの整理をしていました。
無駄なファイルってたくさんあるもんですね。

合計で50GBくらい空きができました。

ところで、ハードディスクに7GB程度の動画ファイルをコピーしようとしたら、

容量不足の為、ファイルをコピー出来ません

と表示され、ファイルをコピーできませんでした。
空き容量は30GBくらいあったので、おかしいなと思って調べてみると、どうやらファイルシステムがfat32だと4GB以上のファイルは認識してくれないようです。
NTFSだと容量制限はないようです。

そこでfat32だったファイルシステムをNTFSにコンバートしました。

変換方法は次のようでした。

変換したいハードディスクのドライブをFドライブだとすると、コマンドプロンプトで

convert F: /fs:ntfs

と入力して実行します。
次にボリュームラベルを聞かれるので、ボリュームラベルを入力します。
ボリュームラベルというのはマイコンピュータを開いたときに表示されているドライブの名前のことです。

LocalDisk(F:)

であればボリュームラベルは

LocalDisk

になります。

そうすると変換が始まり、しばらく待てば変換が完了します。

これだけでファイルシステムをNTFSに変換することができ、大きなファイルも問題なくコピーできました。

ただし、NTFSからfat32へ戻すのは不可能みたいなので、気をつけなければなりません。

大量のデータを扱いやすくするために、Linuxで作ったC++プログラムをWindowsへ移行しました。

ただ単にプログラムがWindowsでも起動するようにするのは思ったよりは手間取りませんでした。

Visual Studioで新しいプロジェクトを作成し、Linuxで作成したC++ファイルをすべて既存のファイルで読み込んで、ビルドするだけです。

もちろん、Linuxではコンパイルが通っていたのに、Windowsだとうまくいかなかったことがありました。

私の場合は、全角のスペースがコメントアウトに入ってたせいで起こったエラーだったり、文字列のスタックを必要最低限に設定していたのが足りないとみなされたりして起こったエラーです。前者は全角スペースをすべて削除、後者は配列数の増加させたら通りました。

Linuxで使用していたバッチファイルはCygwinを使えば利用することができました。Windowsではファイル名やフォルダ名に:が使えないなどといった部分を修正すれば問題なく使えました。

ここまでは良いのですが、問題は処理速度です。

なんと処理速度がLinux時の4倍ほどになってしまいました。

試しにCygwinでなくてコマンドプロンプト用にバッチを書いて試してみても処理速度は遅いままでした。

これでは大量のシーケンスファイルに処理をほどこすときには日が暮れてしまいます。

まさかこんなに遅くなるとは思いませんでした。なんでWindowsだとこんなに遅くなってしまうんでしょう。

とにかく開発はLinuxで行った方が効率が良いということがわかりました。

やっぱり、VMwareのハードディスク容量を増量しないとですかね。いろいろと試してみたんですが、なかなかうまくいかなくてあきらめかけていましたが、もう少し粘ってみようと思います。

0  

0.0223 sec
にほんブログ村 ゲームブログ ファイアーエムブレムへ にほんブログ村 デザインブログ コンピュータグラフィックスへ

Copyright(C)2006-2018 wsp All Rights Reserved