안녕하세요. <div>오유에서 rust라는 언어를 알게 되었고 장점이 많은 언어라 생각이 되어서 제가 참여하고 있는 게임 프로젝트에 사용할 수 있는 지 연구 중입니다.</div> <div><br></div> <div>cargo로 생성한 라이브러리 프로젝트에 다음 과 같이 설정하고</div> <div><div>[package]</div> <div>...</div> <div>[lib]</div> <div>name = "stlibapp"</div> <div>path = "src/lib.rs"</div> <div>crate-type = ["dylib"]</div> <div>..</div></div> <div><br></div> <div>lib.rs에 hello world를 출력하는 간단한 프로그램을 넣었습니다.</div> <div><div><br></div> <div>#[no_mangle]</div> <div>pub extern fn helloworld() <span style="font-size:9pt;">{</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>println!("hello world");</div> <div>}</div></div> <div><br></div> <div>빌드 하면 dll이 만들어 집니다.</div> <div><br></div> <div>test program에서 다음과 같이 작성하고 실행을 하면</div> <div><div>char dll_file[] = "rust_library1.dll";</div> <div><span style="font-size:9pt;">HMODULE h_dll = LoadLibrary(dll_file);</span></div> <div><span style="font-size:9pt;">if(NULL == h_dll)</span></div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("Error\n");</div> <div>}</div></div> <div><br></div> <div>%1은(는) 올바른 Win32 응요 프로그램이 아닙니다. 라고 출력됩니다.</div> <div><br></div> <div>혹시나 해서 dumpbin /exports 로 조사해 보면</div> <div><br></div> <div>... 00001090 helloworld = helloworld</div> <div><br></div> <div>가 있습니다.</div> <div><br></div> <div>그런데 비주얼 스튜디오에서 dll을 만들면 함수는 맹글링 때문에 ?함수이름@... 으로 시작 되는데 rust로 빌드한 것은 이런 맹글링이 안보입니다.</div> <div><br></div> <div>그래서 혹시나 해서 조사해보니 rust로 빌드한 dll은 MinGW 프로젝트에서 만 사용할 수 있다고 하는데 정말 그런지 궁금합니다.</div> <div><br></div> <div>그리고 visual studio에 뽑은 dll을 dumpbin으로 보면 정말 간단한데 rust로 빌드한 것을 보면 수천 줄 나옵니다. 이게 정상인지 또한 궁금합니다.</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.