프로그래밍 QnA

Dean의 이미지

Safe DLL Search Order 적용을 해당 프로그램에서만 제외하기

MFC를 이용하여 작성된 프로그램은 msvcr??.dll 을 참조하게 됩니다.

그래서 배포시에 이용한 msvcr??.dll 파일을 같이 배포를 하려고 합니다.

그러나, 이미 msvcr??.dll 모듈이 로드된 경우이거나, Safe DLL Search Order 기능을 사용할 경우에는

프로그램 작성시에 사용한 윈도우dll을 배포해봤자, 그 dll이 로드되지 않고, 다른 버젼의 모듈을 로드하거나 system폴더에 있는 dll을 로드해버립니다.

제가 작성한 프로그램에서는 제가 작성할 때 사용한 윈도우 시스템 dll가 로드/재로드되었으면 합니다.
어떤 방법을 사용하여야 됩니까?

읽어주셔서 감사합니다.

oosap의 이미지

ddd (Data Display Debugger) 에서 폰트 및 바탕화면 색상 변경 방법?

저는 우분투에서 ddd 를 사용해서 디버깅을 합니다. 경험이 많지는 않고 요즘 거의 쓰기 시작했습니다.
그런데 리눅스 그놈 터미널의 색상에 익숙한 눈에 ddd 의 하얀 바탕화면과 조악한 폰트는 눈에 좀 부담스러울 정도로 어색합니다.
그놈터미널 처럼 검은색 바탕화면으로 하고 밝은 흰색의 폰트, 그리고 폰트 크기도 좀 더 크게 바꾸고 싶은데 방법을 모르겠습니다.
edit > preferences 아니면 edit > gdb settings 에서 살펴봐도 잘 보이지가 않습니다.

GNU DDD 3.3.12 (x86_64-pc-linux-gnu)

버전은 위와 같습니다.

감사합니다.

ash84의 이미지

gcc -L 옵션으로 라이브러리 지정시, skip 하는 이유


아래와 같이 빌드하고나면
gcc -o fasoo_test extract.c -lfasoopackagerC -L.

이렇게 에러메시지가 나오는데요

/usr/bin/ld: skipping incompatible ./libfasoopackagerC.so when searching for -lfasoopackagerC
/usr/bin/ld: cannot find -lfasoopackagerC
collect2: ld returned 1 exit status

extract.c 랑 같은 위치에 libfasoopackagerC.so 를 두었습니다.

제가 궁금한건 so 파일을 usr/lib 이런데에 말고 특정 위치에 두려면 -L을 이용해서 지정한다고 했는데

에러 메시지를 보면 왜 지정한 곳을 SKIP 하고 있는 건가요?

bluesaiha의 이미지

pthread_create의 매개변수 전달 관련 문제점

#include
#include
#include
#include
#include
#include
#include
#include
#include"data.h"

#define THRSIZ 10
//#define THRSIZ 10

int msgq[THRSIZ];
key_t key[THRSIZ];

int threadNum[THRSIZ];
pthread_mutex_t a_mutex = PTHREAD_MUTEX_INITIALIZER;

void *threadhandler(void *num)
{
int len;
int myNum; //Thread를 생성할 때 넘겨준 식별 번호
DATA data; //전송 받을 데이터 구조체
int handleCount = 0; //각 Thread가 몇개의 데이터를 처리 했는지에 대한 카운터
int no;

tttsasa의 이미지

스레드사용시 개별적 작업디렉토리 설정은 어떻게 해야하나요?

chdir이나 fchdir 은 모든 스레드 전부 작업디렉터리가 바뀐다고 알고있습니다.

스레드별로 작업디렉토리를 다르게해주고싶습니다.

방법을 알려주세요 고수님들 ㅠㅠ

happyKYS의 이미지

안드로이드 리눅스 관련하여 질문좀 드립니다.

안녕하세요. init.rc 파싱 때문에 질문 하나만 드리고자 합니다. 답변 부탁드립니다. (꾸벅)

리눅스 커널이 올라가고 init 프로세스로부터 init.rc 등 .rc 파일에 대한 파싱이 시작되는데요.

대충 예를 들면 (아래는 제가 임의로 쓴 내용입니다.)

service usbdaemon /system/bin/usbdaemon
user root
group root
oneshot

이런식의 내용들로 구성이 되어, 기존의 것들은 잘 구동되고 있는게 확인이 가능합니다.

그러나, 왜... 제가 추가해 넣은 /system/bin/ 하위 바이너리 같은 경우 어떤 방법을 써도 직접 실행은 불가능할까요...
이유 아시는분 계시는지요...

(참고로, 쉘 스크립트로 짜서 /system/bin/sh /system/bin/my_binary 이런식으로, 간접적으로 구동시킬 경우에는 돌아가는 것으로 확인됩니다...)

감사합니다.

bluesmile의 이미지

AIX 포팅관련 라이브러리 문의

gcc로 다른 분이 솔라리스에서 개발한 프로그램을 AIX에서 포팅하고 있습니다.

그런데 라이브러리 관련 socket과 resolve가 없다고 메시지가 나오는데
AIX에서 해당 라이브러리는 어떻게 추가를 해야 하는지 모르겠습니다.

혹시 AIX 포팅 해보신분 있으시면 도움 요청드립니다.

ash84의 이미지

undefined reference 에러.. 인데..

make 시, 다음과 같은 구문이 나오는데요

./src-gat/notes_conn.o(.text+0xab15): In function `CCon::GetData()':
: undefined reference to `WorkPackager_new()'
collect2: ld returned 1 exit status

일단 undefined reference 에러는 여기 찾아 보니까 링크시 못찾는걸로 나오는데,

제가 했던것을 말씀드리면,

libfasoopackagerC.so(고객사에서 받은 so 파일, 이것만 받았음)

위의 파일을 현재 make 한 프로그램의 lib/linux/drm 디렉토리에 두었습니다.

그리고 나서

DIR = ./lib/linux

CFLAGS += -I$(DIR)/drm
LFLAGS += -L$(DIR)/drm

LIBS += -lfasoopackagerC

이렇게 추가한후

CC = gcc

n4u9h7의 이미지

배열과 포인터 때문에 질문 드립니다!.

암보드 프로그래밍하다 궁금사항이있어서 이렇게 질문글 올립니다.

static uint8_t TxBuffer [BUFFER_SIZE];

TxBuffer가 요렇게 정의되어 있구요 (BUFFER_SIZE 는 2048)

요 TxBuffer 안에 0부터 FF까지 꽉 채워넣는 함수가

void Fill_Buffer(u8 *pBuffer, u16 BufferLenght, u32 Offset)
{
u16 IndexTmp = 0;

/* Put in global buffer same values */
for (IndexTmp = 0; IndexTmp < BufferLenght; IndexTmp++ )
{
pBuffer[IndexTmp] = IndexTmp + Offset;
}
}

요렇게 있습니다.

이 TxBuffer에 어떠한 문자열을 넣기위해 생각하고 있는데.

페이지

프로그래밍 QnA 구독하기