VC
[vc][mfc]EndDialog(1);ってやると、1が返るようになる ネタ元 http://www.crimson-systems.com/tips/t037g.htm
[vc]CStringListを含んだ構造体を関数に間違って値渡しで渡すとC2248になることがある。ポインタか参照渡しにすれば出なくなった。 なんだかよくわからないがSTL使うとVCのバージョンアップの時に色々不幸が多いみたい。 なるべく使わないほうが楽に生きられ…
[vc][mfc]GetLastError()とInternetGetLastResponseInfo()を使うFTPサーバからのレスポンスがInternetGetLastResponseInfoで受け取る文字列に入るみたい if( !m_ftpConP->CreateDirectory(dirName) ){ long error_code = GetLastError(); if( error_code == …
[vc][mfc] ファイル単体の存在チェック CFileFind find; CString filePath = _T("C:\\foo.bar"); if( find.FindFile( filePath ) ){ // ファイルが存在 } フォルダ内ファイルの存在チェック 以下の例ではでファイル名の条件を指定。 CFileFind find; CString…
[vc][mfc]引数の前後にスペースが混じっちゃってるとか、イージーミスの可能性大。 FTPの環境設定に誤りがあると考えられます。以下を確認してください。 FTPアカウント 性能情報出力画面のFTP環境設定により、運用管理サーバに登録されたアカウントが正しく…
[vc][mfc]メモ 典型的な FTP クライアント アプリケーションの作成手順 FTPクライアントを作る1 ↑開放処理が抜けてるコードなので注意。後始末はこうやる必要があるよ。 if (m_ftpConP){ m_ftpConP->Close(); delete m_ftpConP; m_ftpConP = NULL; } if (m_…
Visual C++ x64版ではインラインアセンブラが使えません。64bit化するにはインラインアセンブラの部分をなんとかしないといけません。 以下メモvc x64 インラインアセンブラ http://www.officedaytime.com/tips/asm64/
序数とは関数に割り付ける番号のようなもの。 LIBRARY mydll EXPORTS Swap @1昔はこっち使ったほうが高速とかいう噂があったけど、 MSDNに「上記の関数は常に名前で参照されるため、序数は不要」と記述があるそうで。 ただ、序数を指定していても実行時にエ…
SAFEARRAYという型なので、SafeArrayGetElement()という関数を使ってアクセスする ::SafeArrayLock( *Strings ); VARIANT data; long i=0; HRESULT res = SafeArrayGetElement(*Strings,&i,( void* )&data); ::SafeArrayUnlock( *Strings );ネタ元 http://ma…
最後の引数が意味不明だったけど、とりあえず使えるようになった #include <stdio.h> #include <string.h> #ifndef null_ptr #define null_ptr 0 #endif char str[] ="asdc,fghm jkl;";//分割したい文字列 char *delim = ", ";//デリミタ(複数渡せる)ここではカンマと空白 cha</string.h></stdio.h>…
//BSTR を char に変換---------------------------------------------- char buf2[64]=""; WideCharToMultiByte( CP_ACP, // コードページ ANSI コードページ 0, // 処理速度とマッピング方法を決定するフラグ (OLECHAR*)bstr, // ワイド文字列のアドレス -…
http://d.hatena.ne.jp/TEMPO/?of=5こちらの例では プロジェクト->プロパティ->構成プロパティ->リンカ->入力->特定のライブラリの無視のところに「mfcs71d.lib;msvcrtd.lib」 追加の依存ファイルのところに「mfcs71d.lib;msvcrtd.lib」 と設定してリンクの…
https://support.microsoft.com/select/?target=assistance&ln=ja
COMのお勉強用にどうぞ。http://cx5software.com/article_com/
ファイル 説明 sample_h.h インターフェースが定義されている。 sample_p.c インターフェースのリモートアクセスを可能にするためのマーシャリングコードを含み、プロキシ/スタブの役 割を果たす。 sample_i.c IIDやCLSIDの実体が定義されている。 sample.tl…
COMの話はないけど、基礎を知れるhttp://urabes.jp/
http://technet.microsoft.com/ja-jp/subscriptions/hh146885.aspx日本語で丁寧に解説されている
Regsvr32.exeでDLL登録しようとして「DllRegisterServer への呼び出しはエラーコード 0x8002801c により失敗しました。」と言われたら、管理者権限がないのが原因です
管理者権限のコマンドプロンプトから実行すれば問題なし ネタ元 http://pasofaq.jp/windows/command/0x8002801c.htm
VC http://support.microsoft.com/kb/327215/ja こちらにあるサンプルはVC++6.0用で、このまま変換してもビルドが通らない。ソリューションエクスプローラーからIRTDServer.idlを右クリック>プロパティを開き、ヘッダーファイルを %(Filename).h タイプライ…
レジストリに登録しないと、呼び出せないのです
うまくいった例 ATL.Test = s 'ATL Test Class' { CLSID = s '{14805E34-39E8-4FE4-9C3A-B5227C4B8C14}' } NoRemove CLSID { ForceRemove {14805E34-39E8-4FE4-9C3A-B5227C4B8C14} = s 'ATL Test Class' { ProgID = s 'ATL.Test' InprocServer32 = s '%MODUL…
http://msdn.microsoft.com/ja-jp/vstudio/dd238515.aspx
ネタ元 http://iwaoalles.wordpress.com/2010/05/07/mfc-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%8F%E3%83%B3%E3%83%89%E3%83%A9%E3%81%AE%E7%99%BB%E9%8C%B2/
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43441&forum=7 http://msdn.microsoft.com/ja-jp/library/8c47csfz(v=vs.80).aspx http://eternalwindows.jp/ole/oleembedded/oleembedded06.html
char tmpWorkbookName[256]; int len; size_t ReturnValue; setlocale( LC_CTYPE, "Japanese_Japan.932" ); // コードページ 932 (SJIS) len = wcstombs_s( &ReturnValue,tmpWorkbookName, sWorkbookName.GetBuffer(0), 256 );
クラスウィザードを開いて、ウィンドウのあるクラスを選び、「メッセージ」タブの一番下にある「カスタムメッセージの追加」でWM_????メッセージを追加できるちなみに WM_???? は自動的に追記されないので手動で登録する必要あり。その際はWM_USERを起点にし…
OLEとかでなんかうまくいかないなぁと思ったら、コレが原因かも ネタ元 http://support.microsoft.com/kb/216686/ja http://program.station.ez-net.jp/memorandum/VC/7/com-create.asp
CRange Cells = Worksheet.get_Cells(); CRange Cell = Cells.get_Item(COleVariant((long)lCellRow), COleVariant((long)lCellColumn)).pdispVal; CString str = Cell.get_Text().bstrVal; CString str2 = Cell.get_Formula().bstrVal; Cell.put_Value2(COl…
初期化していないグローバル変数は自動的に0に初期化されることになっているわけだけど、 このためにBSSという専用のセクションが用意されていて、スタートアップルーチンでクリア処理が走る。 そのため、初期化をしていない変数はせっかく用意した共有用の…
サンプル CApplication App; CLSID clsid; LPDISPATCH pDisp; LPUNKNOWN pUnk; COleVariant varnull; // 既存のExcelのオブジェクトを取得 ::CLSIDFromProgID(_T("Excel.Application"), &clsid); if(::GetActiveObject(clsid, NULL, &pUnk) == S_OK) { pUnk-…