Compiling...
cl : Command line error D8003 : missing source filename

위와같은 메시지를 만났습니다.
소스 파일 이름이 그리워..???
3초 생각해보다가.. 구글링 시도!

http://www.windows-tech.info/17/1860b7c3c6ce2b18.php

중간에 이런 글이 나온다

Re: Visual C++ General cl : Command line error D8003 : missing source filename

Viorel. 

From the displayed command line, it probably has an unneeded quotation mark. I would first advise to go to project properties -> C/C++ -> Preprocessor -> Preprocessor Definitions and ensure that Preprocessor Definitions field does not contains unneeded quotation marks and other accidental characters, in both Debug and Release configurations.

Can you check or show us the Preprocessor Definitions field

See also: http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=2356968&SiteID=1.

See also 로 링크가 보이길래 얼른 눌러봤지만, 링크는 Bad Request 를 보여주기만 할 뿐.. -_-;


그런데 글 내용을 자세히 보니, 


==> 아마도 불필요한 인용부호 ["] 가 있을거다. 속성 -> C/C++ -> Preprocessor -> Preprocessor Definitions 에 가서 Debug와 Release 설정 모두에, 불필요한 인용부호나 오타같은게 있는지 확인해보라


라고 되어있습니다.

열어봤더니.. Additional Include Directories 에 따옴표가 있는......

지우고 다시 해봤습니다.

잘 되네요 ^^

원문 : http://stackoverflow.com/questions/136752/how-do-you-make-stackwalk64-work-successfully-on-x64


I have a C++ tool that walks the call stack at one point. In the code, it first gets a copy of the live CPU registers (via RtlCaptureContext()), then uses a few "#ifdef ..." blocks to save the CPU-specific register names into stackframe.AddrPC.Offset, ...AddrStack..., and ...AddrFrame...; also, for each of the 3 Addr... members above, it sets stackframe.Addr....Mode = AddrModeFlat. (This was borrowed from some example code I came across a while back.)

With an x86 binary, this works great. With an x64 binary, though, StackWalk64() passes back bogus addresses. (The first time the API is called, the only blatantly bogus address value appears inAddrReturn ( == 0xFFFFFFFF'FFFFFFFE -- aka StackWalk64()'s 3rd arg, the pseudo-handle returned by GetCurrentThread()). If the API is called a second time, however, all Addr... variables receive bogus addresses.) This happens regardless of how AddrFrame is set:

  • using either of the recommended x64 "base/frame pointer" CPU registers: rbp (= 0xf), or rdi (=0x0)
  • using rsp (didn't expect it to work, but tried it anyway)
  • setting AddrPC and AddrStack normally, but leaving AddrFrame zeroed out (seen in other example code)
  • zeroing out all Addr... values, to let StackWalk64() fill them in from the passed-in CPU-register context (seen in other example code)

FWIW, the physical stack buffer's contents are also different on x64 vs. x86 (after accounting for different pointer widths & stack buffer locations, of course). Regardless of the reason, StackWalk64() should still be able to walk the call stack correctly -- heck, the debugger is still able to walk the call stack, and it appears to use StackWalk64() itself behind the scenes. The oddity there is that the (correct) call stack reported by the debugger contains base-address & return-address pointer values whose constituent bytes don't actually exist in the stack buffer (below or above the current stack pointer).

(FWIW #2: Given the stack-buffer strangeness above, I did try disabling ASLR (/dynamicbase:no) to see if it made a difference, but the binary still exhibited the same behavior.)

So. Any ideas why this would work fine on x86, but have problems on x64? Any suggestions on how to fix it?



Given that fs.sf is a STACKFRAME64 structure, you need to initialize it like this before passing it to StackWalk64: (c is a CONTEXT structure)

  DWORD machine = IMAGE_FILE_MACHINE_AMD64;
 
RtlCaptureContext (&c);
  fs
.sf.AddrPC.Offset = c.Rip;
  fs
.sf.AddrFrame.Offset = c.Rsp;
  fs
.sf.AddrStack.Offset = c.Rsp;
  fs
.sf.AddrPC.Mode = AddrModeFlat;
  fs
.sf.AddrFrame.Mode = AddrModeFlat;
  fs
.sf.AddrStack.Mode = AddrModeFlat;

This code is taken from ACE (Adaptive Communications Environment), adapted from the StackWalker project on CodeProject.



FWIW, I've switched to using CaptureStackBackTrace(), and now it works just fine.



Windows XP Professional x64 Edition 에서 열심히 Visual Source Safe Automation 기능을 이용해서
C#으로 툴을 만들고 실행을 했더니만..
계속 VSSDatabase 를 new 하는 곳에서 COMException 발생..
뭐 이런게 다있나 싶어서 Registry 에 등록된 정보도 수정해보고.. regsvr32도 다시해봤으나.. 모두 무산!
결국엔 이런 문제였다는걸 알고 가슴이 좀 아프긴 했으나 얼른 수정해서 돌려보았습니다.

글에 등록되어 있는 링크들은 현재 페이지를 참조하지 않고 있으니, 참고하시기 바랍니다.
누르면.. 바로 kbalertz 로 날아갑니다~~~

Link from : http://kbalertz.com/952691/Automation-fails-Windows-Operation-System.aspx

Microsoft Knowledge Base Article

This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks

Article ID: 952691 - Last Review: May 5, 2008 - Revision: 1.1

VSS Automation code fails on 64-bit Windows Operation System

Expand all | Collapse all
Source: Microsoft Support

RAPID PUBLISHING

RAPID PUBLISHING ARTICLES PROVIDE INFORMATION DIRECTLY FROM WITHIN THE MICROSOFT SUPPORT ORGANIZATION. THE INFORMATION CONTAINED HEREIN IS CREATED IN RESPONSE TO EMERGING OR UNIQUE TOPICS, OR IS INTENDED SUPPLEMENT OTHER KNOWLEDGE BASE INFORMATION.

Action

You are using Visual Studio 2005 or Visual Studio 2008 to develope an application that implements Visual SourceSafe automation.

Result



You find that the code compiles on a 32-bit Windows operating system but fails on a 64-bit Windows operating system with the error:

Retrieving the COM class factory for component with CLSID {783CD4E4-9D54-11CF-B8EE-00608CC9A71F}
failed due to the following error:  80040154

Cause

The code in Visual Studio was compiled in 64-bit by default. Visual SourceSafe is a 32-bit application; therefore, you get an error.

Resolution



Alter the build parameters of Visual Studio to build the code in 32-bit.  To make this change, do the following:
  1. Choose Build from the menu then click Configuration Manager.
  2. Change Active Solution Platform to <New>. 
  3. Change "Type or Select the new platform" to x86 in the New Solution Platform dialog.
  4. Recompile the code project.

More Information



Compiling a simple VS 2005 Visual Basic .Net console application with this code demonstrates the problem:

Module Module1
Sub Main()
Dim vssDatabase As New VSSDatabase
Dim vssProject As IVSSItem
End Sub
End Module

DISCLAIMER

MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.

APPLIES TO
  • Microsoft Visual SourceSafe 2005 Standard Edition
  • Microsoft Visual SourceSafe 6.0d
  • Microsoft Visual SourceSafe 6.0C
http://www.pandora.tv/145986

좋은 동영상이 많았습니다.
나중에 동영상들 보고나서 발표자분들 블로그에 감사의 글을 남겨야겠습니다.
원문 출처 : http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.sqlserver.relationalserver.performance&tid=81f5bb85-46e7-458b-8fe3-faa68e8d1088&cat=en_US_E210713E-7304-0EE5-307C-D859C02E1F0F&lang=en&cr=US&sloc=&p=1

Quoting the Books on Line, in the CREATE TABLE command:

"SQL Server 2005 can have up to two billion tables per database and
1,024 columns per table. The number of rows and total size of the
table are limited only by the available storage. The maximum number of
bytes per row is 8,060. This restriction is relaxed for tables with
varchar, nvarchar, varbinary, or sql_variant columns that cause the
total defined table width to exceed 8,060 bytes. The lengths of each
one of these columns must still fall within the limit of 8,000 bytes,
but their combined widths may exceed the 8,060 byte limit in a table.
For more information, see Row-Overflow Data Exceeding 8 KB."

Roy Harvey
Beacon Falls, CT

원문 출처 : http://www.openoffice.org/servlets/ReadMsg?msgId=930121&listName=dev


제목 [dev] A Static Assert implementation
표준 보기 메시지 원본 데이터 출력
Date: Tue, 11 Nov 2003 12:10:11 +0000
From: Caolan McNamara <Caolan.McNamara@Sun.COM>
Content-type: text/plain
Subject: [dev] A Static Assert implementation

We've a number of assert macros which could more profitably be picked up during compile time rather than at run time. Here's an implementation of a staticassert that I've been using successfully in the ww8 filter implemented as sw/source/filter/ww8/inc/staticassert.hxx for some time. An example usage is

StaticAssert((sizeof(stiName) / sizeof(stiName[0])) == 77,
    WrongSizeOfArray);
The constraints are that the error message is a plausible class name, i.e. no spaces and that the test can be done at compile time, e.g. array size checking etc. Perhaps this would be useful moved elsewhere as an office wide construct, instead of just for the ww8 filter.

/*
 Lifted direct from:
 Modern C++ Design: Generic Programming and Design Patterns Applied
 Section 2.1
 by Andrei Alexandrescu
*/
namespace ww
{
    template<bool> class compile_time_check
    {
    public:
        compile_time_check(...) {}
    };

    template<> class compile_time_check<false>
    {
    };
}

    /*
    Similiar to assert, StaticAssert is only in operation when NDEBUG
    is not defined. It will test its first argument at compile time 
    and on failure report the error message of the second argument,
    which must be a valid c++ classname. i.e. no spaces, punctuation 
    or reserved keywords.
    */
#ifndef NDEBUG
#   define StaticAssert(test, errormsg)                         \
    do {                                                        \
        struct ERROR_##errormsg {};                             \
        typedef ww::compile_time_check< (test) != 0 > tmplimpl; \
        tmplimpl aTemp = tmplimpl(ERROR_##errormsg());          \
        sizeof(aTemp);                                          \
    } while (0)
#else
#   define StaticAssert(test, errormsg)                         \
    do {} while (0)
#endif

C.
-- 
Caolan McNamara <Caolan.McNamara@Sun.COM>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.org
For additional commands, e-mail: dev-help@openoffice.org

원문출처 : http://www.zenofdesign.com/Writing_Design_Docs_2008.ppt

GDC 발표자료인가봅니다. 좋은 내용~

Design 문서를 어떻게 만들것인가..?

기획자 입장에서 쓴 글이지만, 다른 파트의 사람들도 도움이 될 것 같습니다.



+ Recent posts