2015年3月9日月曜日

VC++2005 で C言語ソースをコンパイルする方法


VC++2005 で C言語ソースをコンパイルする方法

C言語のプログラムをデバックしたいけど実機やデバッカーが無かったりしてデバックできないことあります。
VC++6.0であれば以下の①を行うとコンパイルが通るのですが VC++2005だとコンパイルが通りませんでした。
しかし、②を行えばコンパイルできるようになりました。

①プリコンパイル済みヘッダーの作成/使用 -> プリコンパイル済みヘッダーを使用しない

②C言語のソースは、拡張子を[.h]にし、 namespace と extern "C" を追加する。


例)プロジェクト名 "Mypro" とし、Form に button1 と textbox1 を配置し、
  button1 をクリックすると C言語のソースである sample.h でセットした文字列を textbox に表示するというプログラムです。

--------------------------
[ sample.h ]
--------------------------
namespace Mypro {               // namespace を追加( Mypro はプロジェクト名 )

  extern "C" {                  // extern "C" を追加

    char abab[] = "aaaa";

    char* sub(){
      return (char*)&abab;
    }
  }
}
--------------------------
[ Form1.h の抜粋 ]
--------------------------
  private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

    char* buf = sub();

    this->textBox1->Text = System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)buf);

  }

2013年9月11日水曜日

sponsorship の削除方法

1.[スタート] ボタンをクリックして、[すべてのプログラム] をクリックし、[アクセサリ]、[システム ツール] を順にポイントして、[タスク] をクリックし、「At1」を削除します。

2.[C]\[Documents and Settings]\[ユーザディレクトリ]\[Application Data]フォルダにある [DSite]フォルダを削除します。

これで sponsorship 削除完了です。

2013年9月10日火曜日

AVR Studio6 で Build すると コンパイルエラーが出る

AVR Studio5 で作ったプロジェクトを AVR Studio6 で Build すると、以下のエラーが出ます。

variable 'lun2_name' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

【解決方法】
"code" で宣言しているところを "const" に書き換えると Build に成功します。

2013年6月7日金曜日

IEでグラデーションを使う方法( border も正常に表示させたい方法)

IEでグラデーションを設定するにはCSSに以下を記述します。


例)white と cornsilk の2色でグラデーションの場合

  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr=white, endColorStr=cornsilk, GradientType=0);
  -ms-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=white,endColorstr=cornsilk, GradientType=0);
  zoom:1;



しかし、この方法では border が消えてしまうため、PIE.htc を利用してみる。
上記3行を次の2行に変更し、PIE.htc を htmlファイルと同一フォルダに入れておく。
(PIE.htc は無料で入手できるので探してください)


例)white と cornsilk の2色でグラデーションの場合

  -pie-background: linear-gradient(white, cornsilk);
  behavior: url(PIE.htc);



この方法を使っても border が表示されないときがありますが、
タグの記述より上にCSSの定義を記述すればOKです。
(これに気付くのに1日ハマりました)


2012年6月2日土曜日

PHP セッション保持時間をアクセス毎に延長する方法

PHP セッション保持時間をアクセス毎に延長する方法

アクセス毎に setExpirationSeconds() を実行するとセッションを延長できます。
(Zend を使用します)

例)
$Namespace = new Zend_Session_Namespace('Default'); // Zend_Session_Namespace インスタンス作成
$Namespace->setExpirationSeconds( 10 * 60 ); // セッションの保持期限( アクセス毎に10分延長 )

2012年4月26日木曜日

C# 2005 dataGridView でエラー

少し前まで問題なく動いていたプログラムが突然動かなくなりました。

次の行でエラーが発生します。

dataGridView1.Columns[0].Visible = false;

もう少し探ってみると、ACCESS からテーブルをロードし、dataGridView に反映するときにエラーが発生していました。

dAdp.Fill(dSet, "DT" + tableName);

以下がエラーの内容です。

{System.IO.FileNotFoundException: ファイルまたはアセンブリ 'System.EnterpriseServices.Wrapper.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
ファイル名 'System.EnterpriseServices.

■解決方法
コントロールパネルのプログラムの追加と削除から、
「Microsoft .NET Framework 3.5 SP1」の「変更と削除」ボタンを押して修復すると治りました。

2011年6月17日金曜日

CORESERVER で 共有SSL にリダイレクトする方法(PHP)

CORESERVER で 共有SSL にリダイレクトする方法(PHP)
例) http://default.com/ → https://ss1.coressl.jp/default.com/


CORESERVER で、共有SSL を設定する方法として
.htaccess の RewriteRule で行う方法があります。

RewriteEngine on
RewriteRule ^(.*)$ https://ss1.coressl.jp/%{HTTP_HOST}%{REQUEST_URI}/ [L,R]

しかし、ループエラーが発生して、どうしてもうまくいきませんでした。
xampp ではうまく置換してくれるのに、coreserver ではダメです。

原因ははっきりわかりませんが、サーバー側のドメイン名の置換のときにへんなループに陥っているような感じでしょうか・・・

■そこで、meta タグの refresh でやってみました。

if( $_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.0' ) { // http のとき
print '<meta http-equiv="refresh" content=";URL=https://ss1.coressl.jp/default.com/">';
}

これだとうまくいきました。

補足説明:<HTML>の<META>タグを PHP で動的に書き換えています。
http・・・でアクセスしたときは、https・・・で refresh します。そして
https・・・でアクセスしたときには、refresh しない仕組みにしておけばOKです。