프로그래밍 QnA + 설치 및 활용 QnA

dltkddyd의 이미지

클래스 템플릿 전방선언을 어떻게 해야 하나요?

대략적으로 다음과 같은 소스코드가 있습니다.

namespace MySpace {
ostream& operator<<(ostream& out, MyMap& ref) {
//코드
return out;
}
};

template<typename K, class V>
class MyMap {
public:
//코드
friend ostream& MyMapSpace::operator<<(ostream& out, MyMap& ref);
//코드
};

이렇게 하고 컴파일 하면 컴파일 에러가 출력됩니다. MySpace에서 ref가 객체를 제대로 받지 못하고 있습니다. 아무래 MyMap 클래스 템플릿을 전방선언 해주어야 할 것 같은데, 어떻게 전방선언을 해줘야 하나요? 저는 MySpace 앞에 아래와 같이 전방선언을 해봤는데, 계속 컴파일 에러가 납니다.

유훈이의 이미지

3g 환경(사설ip)에서 UDP 통신을 어떻게 가능하게 만들 수 있나요?

안드로이드 프로그래밍 중입니다.

3g로 인터넷을 연결하게되면

각 통신사에서 할당해주는 사설ip를 받게 되어지는데요~

이렇게 되니 UDP 통신을 일반적인 방법으론 할 수가 없더군요..

UDP를 위해 12121포트로 소켓을 연다해도~

통신사측이 공인아이피의 12121포트를 제 폰으로 포트포워딩을 해주는것이 아니니

외부에서 공인아이피:12121 로 UDP패킷을 보내봤자 제 폰까지 도달을 하지 못합니다.

제가 알기론 카톡이 UDP를 사용하여 구현된걸로 알기에 분명 해결법이 있는것 같은데

아무리 뒤져봐도 해결방법이 없군요... 혹시 아시는 분 계시면 도와주세요!!!

(*평소엔 생각 못했는데;; 사설ip로 포트포워딩이 안된 포트를 사용하여 TCP 서버의 소켓에

바인딩을 해버리면~ 소켓끼리 통신이 가능하지 않습니까? 이것도 어떻게 이루어지는건지

궁금합니다. 사설ip의 해당 포트까지 어떻게 binding이 되었을까요? 이게 왠지

UDP통신의 답일것 같은데...)

유훈이의 이미지

3g 환경에서 UDP 통신을 어떻게 해야할까요?

안드로이드 프로그래밍 중입니다.

3g로 인터넷을 연결하게되면

각 통신사에서 할당해주는 사설ip를 받게 되어지는데요~

이렇게 되니 UDP 통신을 일반적인 방법으론 할 수가 없더군요..

UDP를 위해 12121포트로 소켓을 연다해도~

통신사측이 공인아이피의 12121포트를 제 폰으로 포트포워딩을 해주는것이 아니니

외부에서 공인아이피:12121 로 UDP패킷을 보내봤자 제 폰까지 도달을 하지 못합니다.

제가 알기론 카톡이 UDP를 사용하여 구현된걸로 알기에 분명 해결법이 있는것 같은데

아무리 뒤져봐도 해결방법이 없군요... 혹시 아시는 분 계시면 도와주세요!!!

(*평소엔 생각 못했는데;; 사설ip로 포트포워딩이 안된 포트를 사용하여 TCP 서버의 소켓에

바인딩을 해버리면~ 소켓끼리 통신이 가능하지 않습니까? 이것도 어떻게 이루어지는건지

궁금합니다. 사설ip의 해당 포트까지 어떻게 binding이 되었을까요? 이게 왠지

UDP통신의 답일것 같은데...)

prankenmk2의 이미지

perl array질문입니다.

안녕하세요.

perl을 이제 공부하기 시작하면서 많이 헤매고 있습니다.

현재 만들어진 perl스크립트를 분석하면서 공부하고 있는데요...

배열로 담긴 데이터를 보려고

print "@배열이름\n";

으로 출력을 하면

ARRAY(0xa0e7284) ARRAY(0xa0e2f3c) ARRAY(0xa115ef0) ARRAY(0xa0d5718) ARRAY(0xa0dfee8) ARRAY(0xa115fec) ARRAY(0xa116130) ARRAY(0xa116034) ARRAY(0xa0d564c) ARRAY(0xa1aa444) ARRAY(0xa0e06b0) ARRAY(0xa116028) ARRAY(0xa0e0470)

이라고만 나옵니다...

안에 있는 값이 어떤지를 봐야하는데...

책을봐도 이부분은 모르겠습니다.

배열을 출력했는데 위와 같이 나오는건 어떤 상황인걸까요?

그리고 담긴 값을 보려면 어떻게 해야 할까요?

많은 조언 부탁드립니다.

감사합니다.

bis0317의 이미지

DirectX에 대해 궁금합니다.

아직 DirectX 프로그래밍을 배우지는 않았는데요,
궁금한 것이 있어서 질문드립니다.

(1)
DirectX와 DirectShow는 무슨 관계인가요?

(2)
PowerDVD로 한글자막이 없는 3D영상을 재생할때, smioverlay라는 프로그램이 많이 사용되는데요.
(smioverlay라는 프로그램은 한글 자막을 영상위에 오버레이 해주는 프로그램입니다)
이게 NVIDIA 그래픽카드에서는 잘 작동이 안되고, ATI계열에서 잘 된다고 하더라구요.
아니나 다를까.. 저도 NVIDIA쓰는데 자막이 오버레이가 안되고 영상뒤로 숨어버리네요...
왜 이런 현상이 발생하는지 정말 궁금합니다...

(3)
2번 문제의 해결책으로, 모니터에 출력되기 바로 전의 영상을 잡아서 수정하면 어떨까 생각해봤는데요.
가능할까요?
(오버레이가 안된다는건, 자막위로 계속 영상이 덮어씌워 진다는 뜻이니까요.. 영상처리 후 자막을 씌우면 되지않을까요)

trymp의 이미지

kernel 단에서 ICMP 전송시 lock 을 잡는 이유???

kernel 초보입니다.. kernel 단에서 ICMP 를 전송하는 부분을 보고 있는데요

부팅시에 ICMP socket을 처음에 per_cpu 를 통해 CPU 별로 만드는데,

패킷을 전송시에 ICMP socket spin-lock 을 잡습니다.

CPU 별로 socket 이 있는데, 왜 lock 을 잡는지 모르겠습니다.

lock 을 안잡으면 어떤 문제가 생기는지 아직 이해하지 못한 상태입니다.

고수님들의 많은 조언 부탁드립니다.

trymp의 이미지

linux kernel 에서 ICMP 전송시 관련 질물입니다.


제가 kerenl 초보라서 이해를 못하는 부분이 있어서 질문드립니다.

kernel 상에서 ICMP 패킷을 전송하는 부분을 보고 있는데요.

ICMP socket을 처음에 CPU 별로 만드는데, (per_cpu)

ICMP 전송시에 ICMP socket spin-lock 을 잡습니다.

이게 의미가 있는지???

이미 socket 이 CPU 별로 있는 마당에 spin lock

으로 lock check 를 할 필요가 있는지 궁금합니다.

lock 을 안잡으면 뮈가 문제가 되는지 모르겠습니다.

고수님들의 많은 조언 부탁드립니다.

yjsyjs3030의 이미지

cygwin gtk 프로그래밍 연습중인데요..

예를들어 콤보박스랑 다른 버튼들을 한 화면에 출력하고 싶은데 합쳐지지가않내요..

테이블안에 넣고싶은데 테이블안에 콤보박스나 다른 보여주는 기능들을 넣고 싶은데 어찌해야할지 모르겟내요 ㅠㅠ 아래는 예제들입니당..
두개의 예제를 합치고 싶은데 ㅠㅠ 초보라 어렵내용..#include"config.h"이건 cygwin에서 에러를 내는데 이유도 궁금합니다..

#include "gtk/gtk.h"

/* 우리의 callback.
* 이 함수로 넘겨지는 데이타는 stdout으로 출력된다. */
void callback (GtkWidget *widget, gpointer data)
{
g_print ("Hello again - %s was pressed\n", (char *) data);
}

/* 이 callback 프로그램을 종료한다 */
void delete_event (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}

powerash의 이미지

openwrt 포팅중 dhcp 설정에 관해서 궁금점이 있습니다.

어찌 어찌하다보니 openwrt 를 이용해서 무선공유기에 포팅을 하는 실습을 하게 되었는데,

설치된 리눅스는 페도라12 이고 (preupgrade 실패해서 그냥 쓰고 있습니다 ㅠㅠ) 여기서 openwrt 소스도 빌드하고

빌드된 커널과 플래쉬에 올릴 이미지를 RB493AH 보드에 올릴려고

minicom 과 rs232 연결을 하여 일단 부트로더가 뜨면 다음 부팅은 이더넷으로 하게끔 하여

설정을 하는 부분에서 dhcp 프로토콜을 이용하는데, 이게 리눅스에서만 정상 작동 하지가 않습니다..

윈도우에서는 5~6번시도하면 한번 커널로딩을 하는 이상한?! 현상이 있는데, 저는 리눅스에서 작업하는

것을 선호하기는 하지만, 여간 어려운게 아니네요.

일단 dhcp 서버는 /etc/dnsmasq.conf 을 수정하는데

listen-address=192.168.11.1
dhcp-range=192.168.11.1,192.168.11.100,12h
dhcp-boot=/tftpboot/vmlinux

goraion의 이미지

[완료] 연산자 오버로딩을 클래스 내부에서 하는 것과 외부에서 하는것의 차이가 무엇인지요?

원래 클래스 외부에서 연산자 오버로딩을 한 다음 자꾸 에러가 발생해서
아래와 같은 질문을 했습니다.

혹시나 싶어서 전역으로 선언한 오버로딩을 클래스 내부로 선언하고
그에 따라 적절히 아래의 코드를 수정해주었더니 잘 되네요.

도대체 무슨 이유가 있어서

A+B+C와 같은 경우 클래스 내부의 오버로딩을 할 때는 컴파일이 되고, 전역으로 오버로딩을 할 때는 안되는 것일까요?

궁금하네요.

========== 원 질문 ===============

현재 *에 scalar multiplification, matrix multiplification 을 오버로딩했고,
+에 matrix addition을 오버로딩 해 두었고, 계산도 잘 해줍니다.

문제는
Matrix D = A+B+C
와 같이 연산을 한번에 여러번 하게 되면,
다음과 같은 error가 발생하는 군요.

페이지

프로그래밍 QnA + 설치 및 활용 QnA 구독하기