2011년 11월 11일 금요일

MFC SOCKET

MFC 에서 기본적인 소켓을 열기 위한 코드.
====================================================================
 SOCKET mysocket = INVALID_SOCKET;
 mysocket = socket(AF_INET, SOCK_STREAM, 0);
 if(mysocket == INVALID_SOCKET)
 {
  CString str;
  str.Format(_T("SOCKET mysocket init fail.(%d)"), WSAGetLastError());
  AppendRichEditText(str);
 }
 else
 {
  sockaddr_in addr = {0};
  int addrlen = sizeof(addr);
  addr.sin_family = AF_INET;
  addr.sin_addr.s_addr = inet_addr("192.168.0.38");
  addr.sin_port = htons(3211);
  int ret = connect(mysocket, (sockaddr *)&addr, addrlen);
  if(ret == SOCKET_ERROR)
  {
   AppendRichEditText(_T("SOCKET mysocket connect fail."));
  }
  else
  {
   AppendRichEditText(_T("dllcsta.CSTA_Client(mysocket);"));
   dllcsta.CSTA_Client(mysocket);
  }

====================================================================
위와 같이 코드를 작성하고 나서, 프로그램을 실행하고 동작을 하면
 아래와 같이 에러가 발생한다 (10093)

SOCKET mysocket init fail.(10093)
====================================================================
그러면 아래와 같이 생성자에 "AfxSocketInit();" 를 추가한다.
====================================================================
CABCDlg::CABCDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CABCDlg::IDD, pParent)
{
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
 AfxSocketInit();//요 친구를 추가하는 것이다
}
====================================================================
짜잔~
빌드중 아래와 같은 에러가 발생한다면...
abcdlg.cpp(0) : error C3861: 'AfxSocketInit': identifier not found

====================================================================
인클루드를 추가한다.
#include "afxsock.h"
====================================================================
====================================================================
여기까지다~ 이후에 발생한 에러는 삽질의 시작을 의미한다!!
====================================================================

2011년 11월 10일 목요일

MFC Richedit2 텍스트 추가하고, 자동으로 줄 증가하는 코드와, 속성값 설정

void CABCDlg::AppendRichEditText(LPCTSTR str)
{
 int nBegin = richEdit2.GetTextLength();
 richEdit2.SetSel(nBegin, nBegin);
 richEdit2.ReplaceSel(str);
 CString lastChar;
 richEdit2.GetWindowTextW(lastChar);
  if(lastChar.Right(1).Compare(_T("\n")) != 0)
 {
  int nNewBegin = richEdit2.GetTextLength();
  richEdit2.SetSel(nNewBegin, nNewBegin);
  richEdit2.ReplaceSel(_T("\n"));
 }
}

2011년 9월 16일 금요일

ubuntu 11.04 login - black screen - login again

한시간 넘게 삽질햇다..
그래도 구글이 효자

* error msg)
~# cat .xsession-error
can't open /usr/share/im-config/xinputrc.common

* solution)
Reboot -> Enter GRUB (Hold SHIFT key)
step1) recovery mode
step2) resume
step3) login as user
step4) sudo apt-get install im-config
step5) Reboot -> xwindow -> login success!!

2011년 9월 9일 금요일

qt compile for arm

set path

emacs .qte
export $QTDIR=/qt4/qt-arm
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTINC=$QTDIR/include
export QTLIB=$QTDIR/lib
export qt_prefix=$QTDIR
save
# source .qte

2011년 9월 8일 목요일

setting arm-cross-compiler on ubuntu 11.04

extract arm-cross-compiler to /opt


edit .bashrc
emacs .bashrc

add
export PATH=/opt/usr/bin:$PATH
save done
source .bashrc

edit .bashrc for root
sudo su
emacs .bashrc
export PATH=/opt/usr/bin:$PATH

2011년 8월 17일 수요일

CentOS6 설치, linux-arm-g++ compile, Qt-e compile

막 하다보니깐

막 안되다가

갑자기

막 되버렷다

웃을까,,울을까,,

그래도 웃는게 좋겟지^^!

2011년 8월 13일 토요일

Qt bug- MainWindow.exe exited with code -1073741819



QAction *cutAction
...
 editMenu = menuBar()->addMenu(tr("&Edit"));
 editMenu->addAction(cutAction);

위의 코드에서 cutAction 항목을 포인터로 선언 후에 초기화 하지 않고 사용하면 에러가 발생한다
(해법은 "QAction *cutAction = new QAction;"

Qt Creator 에서 실행하면 아래와 같은 텍스트 메시지가...

C:\Users\gekosoft\Documents\workspace\MainWindow\debug\MainWindow.exe exited with code -1073741819

윈도우에서 실행하면 아래와 같은 다이얼로그가

이클립스에서 실행하면...아무 반응이 없다 ㅠ_ㅠ
난 이클립스가 젤 편한디...

추가(아래의 코드도 위와 동일한 현상이 발생함)...왠지 어려워 지고 있다
QString Spreadsheet::currentFormula() const
{
// return "";
}