<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Blue Campus</title><link>http://blogs.wankuma.com/blue/</link><description>ちょっとした記録</description><managingEditor>Blue(blue@wankuma.com)</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>私のやり方まちがっている？(掲示板の回答について)</title><link>http://blogs.wankuma.com/blue/archive/2007/07/20/86259.aspx</link><pubDate>Fri, 20 Jul 2007 21:56:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2007/07/20/86259.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/86259.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2007/07/20/86259.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/86259.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/86259.aspx</trackback:ping><description>&lt;A href="http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200707/07070029.txt"&gt;http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200707/07070029.txt&lt;/A&gt;&lt;BR&gt;より、私の回答スタイルを全否定されました。&lt;BR&gt;&lt;BR&gt;プログラマって、何かを作るってことに達成感を持ちませんかね？&lt;BR&gt;パズルのようにあるピースとピースをつないでゆく、そういうところが面白いと思うんだけど。&lt;img src ="http://blogs.wankuma.com/blue/aggbug/86259.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>マイクロソフト MVP アワード受賞</title><link>http://blogs.wankuma.com/blue/archive/2007/07/03/83380.aspx</link><pubDate>Tue, 03 Jul 2007 00:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2007/07/03/83380.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/83380.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2007/07/03/83380.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/83380.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/83380.aspx</trackback:ping><description>何もネタがなかったので久々の更新です。&lt;BR&gt;&lt;BR&gt;皆々様のおかけで、Visual Developer&amp;nbsp; - Visual C++のカテゴリで&lt;BR&gt;マイクロソフト MVP アワードを受賞することができました。&lt;BR&gt;&lt;BR&gt;MVPという重圧に恥じぬように日々精進しなければ。。。&lt;img src ="http://blogs.wankuma.com/blue/aggbug/83380.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>/clr:oldSyntaxでも、ちゃんとデザイン画面で表示できるのね</title><link>http://blogs.wankuma.com/blue/archive/2007/02/19/62954.aspx</link><pubDate>Mon, 19 Feb 2007 01:30:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2007/02/19/62954.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/62954.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2007/02/19/62954.aspx#Feedback</comments><slash:comments>321</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/62954.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/62954.aspx</trackback:ping><description>&lt;P&gt;MSDNフォーラムでMC++の質問のために、VS2005のCLR Windowsフォームアプリケーションを&lt;BR&gt;/clr:oldSyntaxで、コンパイルできるように書き直したのですが、&lt;BR&gt;これはデザイン画面使えなくなっちゃうかなぁ～と思ったけど、そうでもなかったです。&lt;BR&gt;&lt;BR&gt;コントロールの配置からイベントまで自動生成されるコードはすべてMC++用になるんですな。&lt;BR&gt;&lt;BR&gt;いろいろ便利になっているのかなと思ったら、新しいフォームとかのCLRコンポーネントは追加できない&lt;BR&gt;ようです。&lt;BR&gt;ですので、追加時は/clrを変更してから、自動生成されたコードをMC++用に書き直し、&lt;BR&gt;再度/clr:oldSyntaxに戻すようなことをしないとだめなのかな。(ここまで面倒見てほしかった。)&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/blue/aggbug/62954.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>C++/CLIでタイプライブラリを使ってExcelを操作できない その２</title><link>http://blogs.wankuma.com/blue/archive/2007/01/19/56908.aspx</link><pubDate>Fri, 19 Jan 2007 01:15:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2007/01/19/56908.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/56908.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2007/01/19/56908.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/56908.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/56908.aspx</trackback:ping><description>&lt;P&gt;# タイトル長かったので短くしたw&lt;BR&gt;&lt;BR&gt;&lt;A href="http://blogs.wankuma.com/blue/archive/2007/01/16/56466.aspx"&gt;前回&lt;/A&gt;Windows フォームアプリケーションで #importをつかってExcelを使おうとすると、&lt;BR&gt;vtMissingをつかうようなメソッドを使うと、ASSERTして実行できない現象がありました。&lt;BR&gt;&lt;BR&gt;そこでデバッガでさかのぼっていったところ、&lt;IMG style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://blue.wankuma.com/blog/20070119/ExcelTest.JPG"&gt;&lt;BR&gt;&lt;BR&gt;ってなのをみつけ、もしかしたらvtMissingが作成できていないとか？と適当なことを思いつき&lt;BR&gt;&lt;FONT color=#0000ff&gt;グローバル変数として _variant_t vtMissing; を入れてみたら&lt;/FONT&gt;、よくわからないけどASSERTもなく動きました！&lt;BR&gt;# extern _varinat_t vtMissing;はcomutil.hに記述されていますが、その定義はどこに記述されているのだろ？&lt;BR&gt;# (記述されていなければリンクエラーになるはずなんだけど。)&lt;BR&gt;&lt;BR&gt;この対処でありなんだろうか？&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/blue/aggbug/56908.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>[C++/CLI]Windows フォームアプリケーションでタイプライブラリを使ってExcelを操作できない</title><link>http://blogs.wankuma.com/blue/archive/2007/01/16/56466.aspx</link><pubDate>Tue, 16 Jan 2007 01:53:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2007/01/16/56466.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/56466.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2007/01/16/56466.aspx#Feedback</comments><slash:comments>1771</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/56466.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/56466.aspx</trackback:ping><description>&lt;P&gt;最近 C++/CLI でも Excel を操作したいという質問をよく見ます。&lt;BR&gt;そこでサンプルでも作っておこうかなとおもって、いろいろやってみたのですが、&lt;BR&gt;CLRプロジェクト－Windows フォームアプリケーションのときに、ある条件のときに実行できなくなります。 &lt;BR&gt;(コンパイルはできる) &lt;BR&gt;&lt;BR&gt;以下そのコードです。Formも立ち上がらずすぐにASSERTします。&lt;BR&gt;(ちなみに、CoInitializeは(何でかはよくわからないけど)不要のようです。) &lt;/P&gt;
&lt;DIV class=sourcecode&gt;&lt;PRE&gt;&lt;SPAN class=keyword&gt;#import&lt;/SPAN&gt; &lt;SPAN class=string&gt;"C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL"&lt;/SPAN&gt; \
    no_namespace rename(&lt;SPAN class=string&gt;"DocumentProperties"&lt;/SPAN&gt;, &lt;SPAN class=string&gt;"DocumentPropertiesXL"&lt;/SPAN&gt;) \ 
    rename(&lt;SPAN class=string&gt;"RGB"&lt;/SPAN&gt;, &lt;SPAN class=string&gt;"MSO_RGBXL"&lt;/SPAN&gt;)
&lt;SPAN class=keyword&gt;#import&lt;/SPAN&gt; &lt;SPAN class=string&gt;"C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"&lt;/SPAN&gt; \
    no_namespace
&lt;SPAN class=keyword&gt;#import&lt;/SPAN&gt; &lt;SPAN class=string&gt;"D:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"&lt;/SPAN&gt; \
    rename(&lt;SPAN class=string&gt;"ReplaceText"&lt;/SPAN&gt;, &lt;SPAN class=string&gt;"ReplaceTexXL"&lt;/SPAN&gt;) rename(&lt;SPAN class=string&gt;"CopyFile"&lt;/SPAN&gt;, &lt;SPAN class=string&gt;"CopyFileXL"&lt;/SPAN&gt;) \
    rename(&lt;SPAN class=string&gt;"DialogBox"&lt;/SPAN&gt;, &lt;SPAN class=string&gt;"DialogBoxXL"&lt;/SPAN&gt; ) rename(&lt;SPAN class=string&gt;"RGB"&lt;/SPAN&gt;, &lt;SPAN class=string&gt;"RGBXL"&lt;/SPAN&gt;)\
    rename(&lt;SPAN class=string&gt;"DocumentProperties"&lt;/SPAN&gt;, &lt;SPAN class=string&gt;"DocumentPropertiesXL"&lt;/SPAN&gt;) \
    exclude(&lt;SPAN class=string&gt;"IFont"&lt;/SPAN&gt;) exclude(&lt;SPAN class=string&gt;"IPicture"&lt;/SPAN&gt;) no_dual_interfaces

HRESULT ExcelTest()
{
    HRESULT hr = S_OK;
    Excel::_ApplicationPtr pApp = NULL;
    &lt;SPAN class=keyword&gt;try&lt;/SPAN&gt;
    {
        hr = pApp.CreateInstance(L&lt;SPAN class=string&gt;"Excel.Application"&lt;/SPAN&gt;);
        &lt;SPAN class=keyword&gt;if&lt;/SPAN&gt; (FAILED(hr)) _com_issue_error(hr);
        Excel::WorkbooksPtr pWorkbooks = pApp-&amp;gt;GetWorkbooks();
        &lt;SPAN class=keyword&gt;if&lt;/SPAN&gt; (pWorkbooks)
        { 
            Excel::_WorkbookPtr pWorkbook = pWorkbooks-&amp;gt;Add();
            &lt;SPAN class=keyword&gt;if&lt;/SPAN&gt; (pWorkbook)
                pWorkbook-&amp;gt;Close();
        }
        pApp-&amp;gt;Quit();
    }
    &lt;SPAN class=keyword&gt;catch&lt;/SPAN&gt; (_com_error&amp;amp; e)
    {
        hr = e.Error();
    }
    &lt;SPAN class=keyword&gt;if&lt;/SPAN&gt; (pApp) pApp.Release();
    &lt;SPAN class=keyword&gt;return&lt;/SPAN&gt; hr;
}&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;環境:Visual Studio 2005 Pro SP1/Windows Xp Pro SP2/Excel 2003 Personal SP2&lt;BR&gt;オプション:Unicode 文字セットを使用する, 共通言語ランタイム サポート (/clr)&lt;BR&gt;(一応ソースは分けてあります。(ExcelTest.cpp))&lt;BR&gt;&lt;BR&gt;これをCLRコンソールアプリケーションで記述し動かしても何も問題ありません。&lt;BR&gt;で、本題の&lt;BR&gt;&amp;gt;ある条件のときに&lt;BR&gt;とは、引数省略時のvtMissingではなかろうか？と思っています。&lt;BR&gt;上のコードの Excel::Workbooks::Add と Excel::Workbook::Close をコメントアウトすると正常に実行できます。&lt;BR&gt;また、&lt;BR&gt;&amp;gt;Excel::_WorkbookPtr pWorkbook = pWorkbooks-&amp;gt;Add();&lt;BR&gt;を&lt;BR&gt;Excel::_WorkbookPtr pWorkbook = pWorkbooks-&amp;gt;Add(Excel::xlWBATWorksheet);&lt;BR&gt;にして、Excel::Workbook::Close をコメントアウトしても正常に実行できます。&lt;BR&gt;&lt;BR&gt;&amp;gt;pWorkbook-&amp;gt;Close();&lt;BR&gt;を&lt;BR&gt;_variant_t v;&lt;BR&gt;pWorkbook-&amp;gt;Close(v);&lt;BR&gt;としても実行できません。&lt;BR&gt;&lt;BR&gt;ASSERTは&lt;BR&gt;D:\Program Files\Microsoft Visual Studio 8\VC\crt\src\dbgheap.c の 1473 で発生し、ちょっと理解しにくそうなものです。&lt;BR&gt;&amp;gt;_ASSERTE(_CrtIsValidHeapPointer(pUserData));&lt;BR&gt;&lt;BR&gt;一応、#pragma unmanged とか、試してみたけど意味なしっぽく、お手上げ状態です、、、&lt;BR&gt;もう少しやってみて、だめなら掲示板にスレたてますかな。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/blue/aggbug/56466.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>エントリポイントの序数指定([VB6]Declare宣言)</title><link>http://blogs.wankuma.com/blue/archive/2006/12/24/53387.aspx</link><pubDate>Sun, 24 Dec 2006 17:02:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2006/12/24/53387.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/53387.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2006/12/24/53387.aspx#Feedback</comments><slash:comments>309</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/53387.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/53387.aspx</trackback:ping><description>&lt;P&gt;(常識かもしれませんが、)&lt;BR&gt;&lt;BR&gt;先日、&lt;A href="http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200612/06120040.txt"&gt;SHBrowseForFolder のデフォルトパスにネットワークパスを指定するには？&lt;/A&gt;の質問にて、&lt;BR&gt;VB6で指定のディレクトリのLPITEMIDLISTの値を取得する方法をいろいろ調べていたところ、&lt;BR&gt;(VC++ならIShellFolder::ParseDisplayNameで取得できる)&lt;BR&gt;K.J.Kさんから&lt;/P&gt;
&lt;DIV class=sourcecode&gt;&lt;PRE&gt;&lt;SPAN class=keyword&gt;Private Declare Function&lt;/SPAN&gt; SHGetIDListFromPath _
    &lt;SPAN class=keyword&gt;Lib&lt;/SPAN&gt; &lt;SPAN class=string&gt;"shell32.dll"&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;Alias&lt;/SPAN&gt; &lt;SPAN class=string&gt;"#28"&lt;/SPAN&gt; _
( _
    &lt;SPAN class=keyword&gt;ByRef&lt;/SPAN&gt; Path &lt;SPAN class=keyword&gt;As Byte&lt;/SPAN&gt;, _
    &lt;SPAN class=keyword&gt;ByRef&lt;/SPAN&gt; RetPIDL &lt;SPAN class=keyword&gt;As Long&lt;/SPAN&gt;, _
    &lt;SPAN class=keyword&gt;ByRef&lt;/SPAN&gt; RetAttr &lt;SPAN class=keyword&gt;As Long&lt;/SPAN&gt; _
) &lt;SPAN class=keyword&gt;As Long&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;ってな関数を使う方法があるのを教えてもらいました。&lt;BR&gt;&lt;FONT color=#ff0000&gt;#28&lt;/FONT&gt; って何やねん！と思って調べてみたところ、「エントリポイントの序数指定」とのことでした。&lt;BR&gt;つーことは、Win32APIのGetProcAddress関数もできるのかなと調べてみたところ、ちゃんの&lt;A href="http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdllpro/html/_win32_getprocaddress.asp"&gt;MSDN&lt;/A&gt;に載っていました。&lt;BR&gt;(.NET FrameworkのDllImportでも同様→&lt;A href="http://msdn2.microsoft.com/ja-jp/library/f5xe74x8(VS.80).aspx"&gt;エントリ ポイントの指定&lt;/A&gt;? )&lt;BR&gt;&lt;BR&gt;とっても勉強になりました。&lt;BR&gt;だけど、こういう隠し的な関数は本当に知っていないと使えない罠。(引数やら戻り値やらが隠蔽されているので)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;ちなみに、.NET Frameworkの&lt;A href="http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.folderbrowserdialog(VS.80).aspx"&gt;FolderBrowserDialog&lt;/A&gt;では任意(ネットワークパス含み)のルートや初期ディレクトリを設定することは&lt;BR&gt;できないのかな？ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;追記&lt;/FONT&gt;&lt;/STRONG&gt;
&lt;P&gt;shell32.dllの序数28番目の関数名ですが、&lt;BR&gt;SHILCreateFromPath &lt;BR&gt;だそうです。&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shilcreatefrompath.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shilcreatefrompath.asp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ついでに、SHGetIDListFromPathでぐぐったときに#162ってのを見かけたが&lt;BR&gt;あれも、&lt;BR&gt;SHSimpleIDListFromPath &lt;BR&gt;って関数名でした。&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shsimpleidlistfrompath.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shsimpleidlistfrompath.asp&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;# 本当はコメントでレスしようかと思ったけど、なぜかsubmitできなかったので追記編集で。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/blue/aggbug/53387.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>VC2005のインテリセンスってどうなの？</title><link>http://blogs.wankuma.com/blue/archive/2006/11/26/47069.aspx</link><pubDate>Sun, 26 Nov 2006 02:45:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2006/11/26/47069.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/47069.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2006/11/26/47069.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/47069.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/47069.aspx</trackback:ping><description>&lt;P&gt;VC2005で気になったこと。&lt;BR&gt;MFCの～A、～Wのあるメソッドで、どうも～Wしかインテリセンスで表示されないような。&lt;BR&gt;(～Aや～Wのつかないものが表示されない)&lt;BR&gt;&lt;FONT size=2&gt;※一部のクラスのメソッドで文字セット：Unicodeでしか試していません。&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;VC2005(VS2005 Pro)&lt;BR&gt;&lt;IMG style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://blue.wankuma.com/blog/20061126/VC2005.JPG"&gt;&lt;BR&gt;↑&lt;BR&gt;の場合、GetWindowTextってのは候補にないの？ってことです。&lt;BR&gt;(実際は使えます。)&lt;/P&gt;
&lt;P&gt;参考(VC6 Stand)&lt;BR&gt;&lt;IMG style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://blue.wankuma.com/blog/20061126/VC6.JPG"&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;ちなみに windows.hのGetWindowTextの場合は３つとも表示されます。&lt;BR&gt;&lt;IMG style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://blue.wankuma.com/blog/20061126/VC2005API.JPG"&gt;&lt;BR&gt;&lt;BR&gt;編集追記)&lt;BR&gt;よく考えると、CWnd::GetWindowTextと宣言されているものの&lt;BR&gt;GetWindowTextが#defineで置き換わった後のものを表示しているような気がします。&lt;BR&gt;(ということで、_MBCSの場合はGetWindowTextAしか出ないわけなのかな。)&lt;BR&gt;&lt;BR&gt;まぁ一番問題なのは、折角TCHARとして使っているのにもかかわらず、&lt;BR&gt;GetWindowTextWとか使っちゃったら、_MBCSではコンパイルできなくなってしまうということです。&lt;BR&gt;(TCHARを理解していない人ははまりそうですな。)&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/blue/aggbug/47069.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>String^型の変数を可変長引数に指定してもいいのか？</title><link>http://blogs.wankuma.com/blue/archive/2006/11/23/46658.aspx</link><pubDate>Thu, 23 Nov 2006 02:03:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2006/11/23/46658.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/46658.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2006/11/23/46658.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/46658.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/46658.aspx</trackback:ping><description>&lt;P&gt;ある掲示板で、「String^型をchar型配列にするにはsprintfを使えばいい」というのを見ました。&lt;BR&gt;実際試してみるとうまくいっているようには見える。&lt;BR&gt;&lt;BR&gt;ただ、可変長引数にString^型を渡す？そんなのやっていいの？って疑問が出ました。&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;SPAN class=codetitle&gt;実験コード&lt;/SPAN&gt;
&lt;DIV class=sourcecode&gt;&lt;PRE&gt;&lt;SPAN class=keyword&gt;#include&lt;/SPAN&gt; &lt;SPAN class=string&gt;&amp;lt;cstdarg&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=keyword&gt;#include&lt;/SPAN&gt; &lt;SPAN class=string&gt;&amp;lt;cstdio&amp;gt;&lt;/SPAN&gt;

&lt;SPAN class=keyword&gt;#pragma unmanaged&lt;/SPAN&gt;

&lt;SPAN class=keyword&gt;void&lt;/SPAN&gt; test1( &lt;SPAN class=keyword&gt;char&lt;/SPAN&gt;* first, ... )
{
    &lt;SPAN class=keyword&gt;char&lt;/SPAN&gt;* letter = first;
    va_list args;
    
    va_start( args, first );
    
    &lt;SPAN class=keyword&gt;while&lt;/SPAN&gt; ( letter != &lt;SPAN class=number&gt;0&lt;/SPAN&gt; )
    {
        printf( &lt;SPAN class=string&gt;"'%s'\n"&lt;/SPAN&gt;, letter );
        letter = va_arg( args, &lt;SPAN class=keyword&gt;char&lt;/SPAN&gt;* );
    }
    
    va_end( args );
}

&lt;SPAN class=keyword&gt;#pragma managed&lt;/SPAN&gt;

&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt; main()
{
    System::String^ s = L&lt;SPAN class=string&gt;"漢字ひらがなEIJI1234+/?"&lt;/SPAN&gt;;
    
    &lt;SPAN class=comment&gt;// 実験&lt;/SPAN&gt;
    test1( &lt;SPAN class=string&gt;"てすと"&lt;/SPAN&gt;, s, &lt;SPAN class=number&gt;0&lt;/SPAN&gt; );
    
    &lt;SPAN class=keyword&gt;return&lt;/SPAN&gt; &lt;SPAN class=number&gt;0&lt;/SPAN&gt;;
}&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;var_arg( args, char* )のようにchar*型で受ければうまいこと変換されているのかなぁ。(なんでだろ？)&lt;BR&gt;(ということで、swprintfは使えないようだ。) &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/blue/aggbug/46658.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Blue(blue@wankuma.com)</dc:creator><title>わんくま同盟に加盟させていただきました</title><link>http://blogs.wankuma.com/blue/archive/2006/11/19/46090.aspx</link><pubDate>Sun, 19 Nov 2006 02:08:00 GMT</pubDate><guid>http://blogs.wankuma.com/blue/archive/2006/11/19/46090.aspx</guid><wfw:comment>http://blogs.wankuma.com/blue/comments/46090.aspx</wfw:comment><comments>http://blogs.wankuma.com/blue/archive/2006/11/19/46090.aspx#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://blogs.wankuma.com/blue/comments/commentRss/46090.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/blue/services/trackbacks/46090.aspx</trackback:ping><description>&lt;P&gt;どうも、お世話になります。&lt;BR&gt;&lt;FONT color=#0000ff&gt;Blue&lt;/FONT&gt;といいます。&lt;BR&gt;&lt;BR&gt;前々からこちらの掲示板等を利用させていただき、&lt;BR&gt;いつかは加盟させてもらおうと思っていましたところ、じゃんぬさんに誘われたので&lt;BR&gt;思い切って入っちゃいました。&lt;BR&gt;&lt;BR&gt;自分は、ネタ発信できるほどではないので、なんとなく掲示板やらで感じたこととかを&lt;BR&gt;載せていこうかなぁと思っています。&lt;BR&gt;定期的に更新できる自身はないですｗ→(相当のめんどくさがり屋ですので)&lt;BR&gt;&lt;BR&gt;&lt;FONT size=1&gt;今なら質問受け付けます。といってみるテストｗ&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/blue/aggbug/46090.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>