http://hopeis.tistory.com/123
http://blog.naver.com/muggae/50010211722

VC로 DLL 만드는 경우에 def를 사용하지 않고 extern을 사용하는 경우에 VB에서 호출이 안된다.
이런 문제가 발생하는 이유는 볼랜드의 경우에 stdcall 호출 타입인 경우에는 extern "C"를 하면 함수 이름 그대로 export가 되지만, VC의 경우에 extern "C"를 하여도 prefix와 postfix가 붙게 되어 함수 이름이 변경되어 export 된다.
볼랜드 계열만 사용하다 VC에서는 왜 제대로 안되나 싶었는데 아래 자료를 읽어보니 명확해졌다.

# function_name_with_extern_c.png from Calling conventions for different C++ compilers and operating systems

Posted by Gu Youn
,
#include <fstream>
using namespace std;

ofstream out("c:\\ou.txt",ios_base::out | ios_base::app);
out << std::endl;
out << "===find call-k and put-k test====" << std::endl;
out.close();

Posted by Gu Youn
,

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

1. Washington univ. C Lecture
http://www.cs.washington.edu/education/courses/cse142-TVI/00sp/slides/TVI.html


2. sql relay(persistent database connection pooling)
http://sqlrelay.sourceforge.net/

3.  Unix Application Migration Guide
Windows <=> Unix 간 호환 되는 프로그램 만들기

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnucmg/html/ucmglp.asp

4. 소켓 프로그래밍 기초 정리
kldp.org/Translations/html/Socket_Programming-KLDP/Socket_Programming-KLDP.html

5. Visual C++에 STLPort 설치하기
http://www.kwak101.pe.kr/kwak101/works/InternData/STLport_QuickGuide.html

http://zho.pe.kr/view.html?file_name=doc/cpp.txt

6. dev c++ 사용방법
http://www.kgda.or.kr/cgi/technote/read.cgi?board=program02&x_number=994081516&r_search=opengl&nnew=1

7. MF_FP macro define
http://www.woodmann.com/fravia/andrew1.htm
#ifndef MK_FP
#define MK_FP(seg,ofs)  ((FP)(((ULONG)(seg) << 16) | (ofs)))
#endif

8. stdcall , cdecl 관련 설명
stdcall은 callee에서 stack 해제를 하므로 코드 사이즈가 줄어든다.
cdecl은 caller에서 stack 해제를 함

http://www.devpia.com/forum/BoardView.aspx?no=6032&page=1&Tpage=200&forumname=vc_lec&iddlpage=30&stype=&answer=&cttype=
Posted by Gu Youn
,

1.빌더 설정에서 사용되는 경로 문제
C++ Builder에서 bpl,lib 등의 경로에 +와 같은 문자가 들어가는 경우에 정상적으로 인식 못함.


2.lib 사이즈 문제
libray too large error : Project->Options->?TLib에서 PageSize항목을 수정한다.


3.델파이 콤퍼넌트 빌더 설치시 발생하는 문제
?TCustomOutline에서 링크에러 나는 경우 bpk 파일을 문서 편집기로 열어서 LIBS과 SPARELIBS 항목에서 bcbsmp.lib를 삭제하고 저장한다.


4.기존 설치된 Indy 상위버젼으로 변경
단순 컴포넌트를 폼에 두고는 컴파일과 실행이 되는데 소스상에서 동적생성시 링크에러 발생 하는 경우에는 library path의 최상위로 indy 관련 경로가 등록이 되어 있는지 확인하고 프로젝트의 include path에도 등록을 한다.

Posted by Gu Youn
,
C++ Builder Developer's Journal에 올라온 GDI+ 관련된 기사 목록
1. May 2004 - Using GDI+, Part Ⅰ
2. June 2004 - Using GDI+, Part Ⅱ: Bitmaps
3. August 2004 - Using GDI+, Part Ⅲ: Cordinate Space Transformations
4. Octover 2004 - Using GDI+ Part Ⅳ: Metafiles
Posted by Gu Youn
,
1. 상황
출력할 자료의 개수를 모르는 상태에서 "값 + 구분자"로 출력을 하고 각 자료는 개행으로 구분을 한다면, 마지막 값에 구분자가 포함되어 개행문자 앞에 필요없는 구분자가 들어간 상태가 됨으로 마지막 값 뒤에 붙은 구분자를 제거해야 한다.

2. 개념
stream position을 이동하여 마지막 필요없는 구분자에 개행문자를 출력한다.

3. 소스
ofstream out("Output.txt");
//out.open("Output.txt");

for(~~~)
{

while(!ComponentQueue->IsEmpty())
{
        CQueueElement element = ComponentQueue->Dequeue();
        out << element.Vertex << "+";
}

//stream position 변경 부분
std::streamoff i = out.tellp();
out.seekp(i-1); //마지막에 출력한 공백의 위치로 stream poisition이 이동한다.
out << std::endl;
}

4. 출력 예
ㄱ. stream position 변경 코드 적용 전의 결과
0+2+5+8+7+
1+
3+4+6+

ㄴ. stream position 적용 결과
0+2+5+8+7
1
3+4+6
Posted by Gu Youn
,
출처 : http://www.elevatesoft.com/bulletin_13.htm

TCPServer사용할 때 아래와 같은 에러가 나면 Conditional defines에 "_WINSOCKAPI_"을 추가하면 해결 된다.

[C++ Error] winsock2.h(109): E2238 Multiple declaration for 'fd_set'
[C++ Error] winsock.h(54): E2344 Earlier declaration of 'fd_set'
[C++ Error] winsock2.h(112): E2146 Need an identifier to declare
[C++ Error] winsock2.h(153): E2238 Multiple declaration for 'timeval'
[C++ Error] winsock.h(97): E2344 Earlier declaration of 'timeval'
[C++ Error] winsock2.h(209): E2238 Multiple declaration for 'hostent'
[C++ Error] winsock.h(153): E2344 Earlier declaration of 'hostent'
[C++ Error] winsock2.h(222): E2238 Multiple declaration for 'netent'
[C++ Error] winsock.h(166): E2344 Earlier declaration of 'netent'
[C++ Error] winsock2.h(229): E2238 Multiple declaration for 'servent'
[C++ Error] winsock.h(173): E2344 Earlier declaration of 'servent'
[C++ Error] winsock2.h(241): E2238 Multiple declaration for 'protoent'
[C++ Error] winsock.h(185): E2344 Earlier declaration of 'protoent'
[C++ Error] winsock2.h(327): E2238 Multiple declaration for 'in_addr'
[C++ Error] winsock.h(269): E2344 Earlier declaration of 'in_addr'
[C++ Error] winsock2.h(385): E2238 Multiple declaration for 'sockaddr_in'
[C++ Error] winsock.h(319): E2344 Earlier declaration of 'sockaddr_in'
[C++ Error] winsock2.h(395): E2238 Multiple declaration for 'WSAData'
[C++ Error] winsock.h(329): E2344 Earlier declaration of 'WSAData'
[C++ Error] winsock2.h(411): E2146 Need an identifier to declare
[C++ Error] winsock2.h(546): E2238 Multiple declaration for 'sockaddr'
[C++ Error] winsock.h(492): E2344 Earlier declaration of 'sockaddr'
[C++ Error] winsock2.h(586): E2238 Multiple declaration for 'sockproto'
[C++ Error] winsock.h(501): E2344 Earlier declaration of 'sockproto'
[C++ Error] winsock2.h(625): E2238 Multiple declaration for 'linger'
[C++ Error] winsock2.h(625): E2228 Too many error or warning messages
Posted by Gu Youn
,