「インクルード」を含む日記 RSS

はてなキーワード: インクルードとは

2019-02-10

Xboxコントローラーに騙された

エリートコントローラーにはBluetoothが付いてないなんて知らなかった

なぜ同じメーカーが並行して売ってる商品

5000円のコントローラーについてる機能が1万5000円のコントローラーに付いてないなんて事が起きるんだよ

普通は上位機種は下位機種にある機能は全てインクルードしてるだろうが

2017-04-06

http://anond.hatelabo.jp/20170406081854

現役ペチパーだけど、元々PHPHTMLスクリプトを埋め込むところから始まった変態言語なので、

普通に関数を作って組み合わせてしまえば大半は事足りるのも当然なんだけども。

実務で使うと便利だなと思うのは、まとまりのある複数変数メソッドを1つのクラスカプセル化できること。

例えば、ユーザ情報管理するときに、「ユーザ情報」というクラスを作って、

その中に publicな変数として、名前フリガナ郵便番号、住所、電話番号、会員ID階級職業性別

を放り込んでおく。

同時に、ユーザ情報の処理に関連する処理の関数を public なメソッドとして、定義する。

ユーザ情報をタブ区切りで得るメソッド getTABDATA()

フォーム入力からユーザ情報にセットする setFromForm()

ユーザ情報が正しく入ってるか評価する Validate()

こうしておけば、

ユーザ情報を何かの関数に渡す時は、インスタンス変数1つ渡せば済む。

ユーザ情報に関する処理は、ユーザ情報クラス定義部を観れば済む。

という2大メリットが得られる。

そんなのPHPなら連想配列変数はまとめられるし、

メソッドだってつのファイル関数並べてインクルードすれば同じメリットが得られるやん?

…と私も思ってた。ただねぇ、開発規模が大きくなると、関数名の重複を避けた命名が面倒になったり、

連想配列だと好きな場所勝手変数増やされたりして、メンテナンス性が悪くなるのね。

からクラスを使うようになりました。


あとは、例えばメールを送るという1つの大きな処理に関連して複数関数定義する場合に、

その関数をまとめてメール送信クラスとしてしまうのはあるかな

実例

http://web-terminal.blogspot.jp/2014/04/php-file-mail-pear.html

PHPエクセル出力できるPHPExcelもクラスになっているから使いやすそう。

http://qiita.com/suin/items/7a8d0979b7675d6fd05b

PHPからPDF出すのもクラスになっていてありがたかった。

http://cmf.ohtanz.com/blog/archives/2463

結論としては、

まとまりのあるデータメソッドがあって、まとめておかないとヤバそうなときだけクラスにすればいい。

2013-12-30

http://anond.hatelabo.jp/20131230010443

外部ライブラリは使わず自分で実装する方が早い場合ほとんど

外部ライブラリとか言っても大抵は大した機能使わん

ビルド設定いじるよりデフォルトの設定でビルドできるようにするにはどうしたらいいかという方向で考える

作る前に不必要インクルードファイルライブラリが増えないように必要最小限にしてる

2008-09-20

http://anond.hatelabo.jp/20080920140747

解決方法のようなものを↑で見つけましたがこれでインクルードできるようになったとしても

今度はSDKから呼び出すプログラムを書かないといけないです

SDKの説明書MFCで作ることを前提に書かれているように見えるので

現在のwin32apiのプログラムMFC移植することも考えないと行けないかもしれません

2008-03-20

[]gcc-xmlVisual Studio 2005を使いたい!

gcc-xmlって何?

gccの構文解析の結果(構文木)を、XMLとして出力してくれるツールです。C++の構文解析はやたらと面倒らしいので、こういうのがあるとうれしいみたいよ。

何でわざわざビルドするの?

Py++」というC++のPytyonバインディングで使われていたので、必要になりました。gcc-xml 0.6はバイナリで配布されてるんだけど、MSVC7.1までしか対応してないようで、Visual Studio 2005だと使えませんでした。うーん、困った。というわけで、最新版のソース一式を取得してビルドしてみます。

CMakeをインストールしよう

gcc-xmlビルドには、CMakeというツールが必要になります。CMakeは、オープンソースクロスプラットフォームビルドシステムなんだとか。CMakeの公式サイトから、Windows版のインストーラーをダウンロードしてインストールしよう。

実は最初は、ここでcygwinのsetup.exe経由でのインストールをしてたんですけど、これだとgcc-xmlビルドの段階でエラーが発生しちゃいました。この原因がどうしてもわかんなかったので、あきらめて公式サイトインストーラーを使うことにした次第です。

gcc-xmlソース一式を取得しよう

ソース一式はCVSから取得できます。CVSクライアントはいろんなのがあるので、好きなクライアントを使って取得しよう。ここではcygwinCVSを使って、シェルから以下の命令を実行して取得しました。40MBくらいあるみたい。

$ cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML co gccxml

gcc-xmlビルドしよう その1

Visual Studio 2005 コマンドプロンプト」を起動してください。起動したら、さきほど取得したソース一式が格納されているディレクトリに移動して、以下の命令を実行します。

$ cmake .

cmake.exeにはあらかじめパスを通しておくか、パスを直接指定するのを忘れずにね。

gcc-xmlビルドしよう その2

gcc-xmlビルドはまだ終了してなかった! 一度ビルドが終了しても、第二第三のビルドが必要となって…。などと恐れおののきましたが、二段階でいいみたい。

さきほどの処理が終了すると、同じディレクトリに"gccxml.sln"というソリューションファイルが新しくできあがっているかと思います。これをVisual Studio 2005から開いて、Releaseビルドしよう。ビルドが終了したら、以下の5つの実行ファイルができあがっているはずです。

  • bin/release/gccxml.exe
  • bin/release/gccxml_cc1plus.exe
  • bin/release/gccxml_vcconfig.exe
  • bin/release/gxsysEncodeExecutable.exe
  • bin/release/gxsysProcessFwd9x.exe

gcc-xmlVisual Studio 2005を使えるように設定しよう

まずは環境変数の設定です。Visual Studio 2005を使っていることを、gcc-xmlに高らかに宣言しておこう。

$ set GCCXML_COMPILER=msvc8

つぎに、gccからVisual Studio 2005のインクルードファイルを使えるよう、パッチをあてます。ありがたいことに、"GCC_XML/VcInstall"ディレクトリ以下にVisual Studioバージョンによってパッチが用意されています。そのディレクトリと、パッチを当てたファイルを出力するディレクトリ("gccxml.exe"が置いてあるディレクトリ)を指定して、"gccxml_vcconfig.exe"を実行してください。

$ bin/release/gccxml_vcconfig GCC_XML/VcInstall/ bin/release

gcc-xmlを使ってみよう

あとはbin/releaseにパスを通せば、gcc-xmlが使えるようになったはずです。bin/release以下をどこか適当ディレクトリコピーして、そこにパスを通してもオッケイです。やったね! というわけで、さっそく試してみましょう。

$ gccxml eample1.cpp -fxml=example1.xml

ここでは、解析するC++ソースファイルとしてeample1.cpp入力し、eample1.xmlを出力しています。ちゃんと出力できたかな? できたー! やったー!

以上で終わりです。

2008-03-15

[][]PythonからSWIG経由でVisual Studio 2005を使って困ったこと

以上のような組み合わせで出くわした困ったことと、その解決策をメモしておきます。

setup.py を実行するとエラーが表示された!

Python was built with Visual Studio 2003;

extensions must be built with a compiler than can generate compatible binaries.

Visual Studio 2003 was not found on this system. If you have Cygwin installed,

you can try compiling with MingW32, by passing "-c mingw32" to setup.py.

setup.pyに.iファイルとか.cppファイルを記述して実行すると、こんな感じのエラーメッセージが表示されました。うーん、困った!

http://labs.cybozu.co.jp/blog/mitsunari/2007/08/vc2005boostpython.html

上記のページを参考にして、"%Pythonインストールしたフォルダ%/Lib/distutils/msvcompiler.py"を以下のように修正してみたら解決できました。ありがとうありがとう

--- msvccompiler.py    2007-04-04 17:17:12.000000000 +0900
+++ 
@@ -126,7 +126,7 @@
         self.set_macro("FrameworkDir", net, "installroot")
         try:
             if version > 7.0:
-                self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")
+                self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv2.0")
             else:
                 self.set_macro("FrameworkSDKDir", net, "sdkinstallroot")
         except KeyError, exc: #
@@ -252,7 +252,10 @@

     def initialize(self):
         self.__paths = []
-        if os.environ.has_key("DISTUTILS_USE_SDK") and os.environ.has_key("MSSdk") and self.find_exe("cl.exe"):
+        if self.__version >= 7.1 or (
+            os.environ.has_key("DISTUTILS_USE_SDK") and
+            os.environ.has_key("MSSdk") and
+            self.find_exe("cl.exe")):
             # Assume that the SDK set up everything alright; don't try to be
             # smarter
             self.cc = "cl.exe"
@@ -288,10 +291,16 @@

         self.preprocess_options = None
         if self.__arch == "Intel":
-            self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GX' ,
-                                     '/DNDEBUG']
-            self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GX',
-                                          '/Z7', '/D_DEBUG']
+            if self.__version >= 7.1:
+                self.compile_options = [
+                    '/nologo', '/Ox', '/MD',  '/W3', '/EHsc', '/DNDEBUG']
+                self.compile_options_debug = [
+                    '/nologo', '/Od', '/MDd', '/W3', '/EHsc', '/Z7', '/D_DEBUG']
+            else:
+                self.compile_options = [
+                    '/nologo', '/Ox', '/MD',  '/W3', '/GX',  '/DNDEBUG']
+                self.compile_options_debug = [
+                    '/nologo', '/Od', '/MDd', '/W3', '/GX', '/Z7', '/D_DEBUG']
         else:
             # Win64

cl.exeが見つからないと言われた!

setup.pyを実行するとcl.exeが見つからないみたいなエラーが表示されました。これは、アレだ。「パス通せ!」ということですね。bashを起動するときのバッチファイル(たぶん"cygwin.bat"とか)で、以下のような行を入れてやれば解決しました。

call "%VS80COMNTOOLS%vsvars32.bat"

setup.pyを実行したときに"basetsd.h"が開けないと言われた!

d:\python25\include\pyconfig.h(189) : fatal error C1083: include ファイルを開けません。'basetsd.h': No such file or directory

error: command 'cl.exe' failed with exit status 2

setup.pyを実行すると、上のようなエラーが表示されました。

http://d.hatena.ne.jp/ousttrue/20070531/1180556273

上記のサイトを見るとインクルードパスが通っていない場所に"basetsd.h"があるのが原因なので、"cygwin.bat"にインクルードパスの設定をしておきました。

call "%VS80COMNTOOLS%vsvars32.bat"
set INCLUDE=C:\Program Files\Microsoft Platform SDK\Include;%INCLUDE%

setup.pyを実行したときのリンク時にエラーが発生した!

link: extra operand `/INCREMENTAL:NO'

詳しくは `link --help' を実行して下さい.

error: command 'link.exe' failed with exit status 1

これは、cygwinのほうのlink.exeが実行されてるのが原因でした。スマートな解決策ではありませんが、cygwinのほうのlink.exeをリネームして解決。パスの設定順序とかでどうにかできるといいんだけど、どうすればいいんかな。

MSVCR80.dllが見つからないと言われた!

MSVCR80.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションインストールし直すとこの問題は解決される場合があります。

SWIGが生成した.pyファイルをimportしたら、こんな感じのエラーダイアログが表示されたよ。うーん、困った!

http://d.hatena.ne.jp/moriyoshi/20070525

上記のページを参考にして、"%Pythonインストールしたフォルダ%/python.exe.manifest"として以下のようなファイルを新しく作ったら、解決できました。ありがとうありがとう

あとこれ、bashから実行したらエラーダイアログが表示されず、importするモジュールが見つからないみたいなエラーメッセージが出力されるだけだったよ。

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

2007-08-04

http://anond.hatelabo.jp/20070804200222

いや、前にそれでアップローダーを潰されたざますよ。

増田でしか公開していないやつだったんだけど、URL拾われたみたい。

スクリプトを埋め込まれても拡張子画像ファイルだから動作はしないんだけど、

他にずるずるの鯖とかをみつけてそこからこっちの画像偽装ファイルインクルードするんだと。

すると、こっちのアップローダに本体があることになるので、向こうでも発覚しにくくなる。

そんな感じ。

こっちは本体があるので、運営会社から連絡が入って、お宅のところに不正ファイルがあがってる言われてドギャーーン!

こっちでも画像だけしかアップロード許可を入れてないので、油断しまくりんぐでした。

幸い使われた形跡はなかったんだけど、ネットの世界は難しいね。

それこそはてなフォトライフにだってインポート用のすくりぷとおけるんじゃないか?

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん