ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
Prismלא בפורום כעת ת.הצטרפות: 17/01/2006 · הודעות: 144 ·
 

הודעה פורסם: 09/01/2007 - 20:43
נושא ההודעה: קימפול libhdate על מערכת Windows

שלום לכם,

אני מנסה לקמפל את הספרייה libhdate על ווינדוס. גייסתי לשם כך את cygwin, ביצעתי configure לפי ההוראות שבאתר, אבל בפלט של make אני רואה הרבה הודעות

קוד:
../../src/.libs/libhdate.a(hdate_string.o):hdate_string.c:(.text+0x2fa):undefined reference to '_libintl_bindtextdomain'


לדוגמא. הייתי מעתיק פה הכל, אבל אני לא רואה דרך שאפשר להעתיק ממנה את הפלט מקונסול cygwin.

את תיקיית src עצמה אני מסוגל לקמפל, אבל לא את הדוגמאות שמצורפות. כשאני מנסה להשתמש באובייקט שקיבלתי בויז'ואל סטודיו 2003, אני מקבל את הודעת השגיאה:
temp error LNK2019: unresolved external symbol _hdate_set_gdate referenced in function _main

שאומרת בדיוק אותו דבר לדעתי.

למישהו יש רעיון? כיוון? משהו?

תודה. Smile
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
kzamirלא בפורום כעת ת.הצטרפות: 25/12/2004 · הודעות: 76 ·
 

הודעה פורסם: 09/01/2007 - 21:01
נושא ההודעה:

האים ביטלתה את הקישור ל gettext ?

קוד:
./configure --disable-nls
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
Prismלא בפורום כעת ת.הצטרפות: 17/01/2006 · הודעות: 144 ·
 

הודעה פורסם: 09/01/2007 - 21:11
נושא ההודעה:

אוקיי, הצלחתי לקמפל כך שהכל רץ ע"י הוספת --disable-nls לסקריפט הconfigure.
הבעייה היא שעכשיו התוכנה פועלת רק בסביבת cygwin, ומבקשת את הdll בכל פעם שאני מריץ אותו ישירות מווינדוס.

יש איזושהי דרך להפעיל את התוכנה בלי הסתמכות על cygwin? נסיון לקימפול בVS נותן לי את הודעת השגיאה של קודם, גם עם הספריה החדשה.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
kzamirלא בפורום כעת ת.הצטרפות: 25/12/2004 · הודעות: 76 ·
 

הודעה פורסם: 09/01/2007 - 21:23
נושא ההודעה:

כך עובדים עם cygwin . אם אתה מעוניין בקובץ הרצה רגיל של חלונות תנסה את mingw.
http://www.mingw.org/
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
Prismלא בפורום כעת ת.הצטרפות: 17/01/2006 · הודעות: 144 ·
 

הודעה פורסם: 09/01/2007 - 21:26
נושא ההודעה:

אוקיי, אני אנסה, תודה! Smile
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
Prismלא בפורום כעת ת.הצטרפות: 17/01/2006 · הודעות: 144 ·
 

הודעה פורסם: 10/01/2007 - 18:28
נושא ההודעה:

אוקיי, הצלחתי לקמפל את הפרוייקט בסביבת mingw. עכשיו הייתי רוצה לקחת את זה צעד אחד קדימה, וליצור DLL כך שאוכל להשתמש בו בסביבת VB6.

איך אפשר לעשות את זה? האם זה מצריך שינויים בפרוייקט עצמו, או שאוכל לעקוף את זה?

ניסיתי לבנות קובץ קטן כ-DLL, כך שיעטוף את הספריה הקיימת. הקובץ נקרא hdatedll.c:

קוד:
#include "hdate.h"

__declspec (dllexport)
__stdcall DWORD getHoliday (DWORD d, DWORD m, DWORD y)
{
  hdate_struct h;
  hdate_set_gdate(&h, d, m, y);
  return hdate_get_holyday(&h, 0);
}


קימפלתי כך:

gcc -Wl,--add-stdcall-alias

בהתאם לרשום כאן: http://www.mingw.org/MinGWiki/index.php/VB-MinGW-DLL?PHPSESSID=0a747374cbb2c70240ba7acf65a1bc5c

הודעת השגיאה שקיבלתי:

קוד:
hdatedll.c:4: error: syntax error before "getHoliday"
hdatedll.c:4: error: syntax error before "d"
hdatedll.c: In function `getHoliday':
hdatedll.c:7: error: `d' undeclared (first use in this function)
hdatedll.c:7: error: (Each undeclared identifier is reported only once
hdatedll.c:7: error: for each function it appears in.)
hdatedll.c:7: error: `m' undeclared (first use in this function)
hdatedll.c:7: error: `y' undeclared (first use in this function)
hdatedll.c:9:2: warning: no newline at end of file


מה אפשר לעשות בנידון?
תודה. Smile
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
kzamirלא בפורום כעת ת.הצטרפות: 25/12/2004 · הודעות: 76 ·
 

הודעה פורסם: 11/01/2007 - 00:18
נושא ההודעה:

למה אתה חושב שהמהדר יודע מה זה DWORD ?

תנסה:
קוד:

typedef unsigned long DWORD;

או אינקלוד ל:
קוד:
windef.h


נ.ב.
אין לי חלונות או וי-בי-6 כדי לנסות, אבל זה נראה לי הכיוון
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
Prismלא בפורום כעת ת.הצטרפות: 17/01/2006 · הודעות: 144 ·
 

הודעה פורסם: 11/01/2007 - 21:42
נושא ההודעה:

תודה, ההודעה שלך בהחלט עזרה לי להתקדם. זה לא נגמר בזה, עדיין הייתה לי עבודה על קבצי DEF וניסיון להבין הודעות שגיאה של GCC, REGSVR32 ו-VB לסירוגין. אבל עכשיו זה עובד, ואני מאושר מתמיד. תודה!
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
kzamirלא בפורום כעת ת.הצטרפות: 25/12/2004 · הודעות: 76 ·
 

הודעה פורסם: 11/01/2007 - 22:55
נושא ההודעה:

האי-מייל שלי נמצא בדף הבית של libhdate למטה.

כאשר אתה שולך את הפטצ' תזכור שאין לי דרך לבדוק את הקוד מאחר ואין לי חלונות או vb6. אני אצתרך הרבה הסברים לגבי מה שעשיתה והדרכה מה היתי רואה במידה וכן היתי מנסה להדר ולהריץ את הקוד.

מטרה ראשונית: להוסיף באתר, דף שיסביר למי שרוצה להכין dll כזה, מה לעשות. לשם כך צריך הוראות כמה שיותר מפורטות ומדוייקות מה עשיתה ומה שינתה בקוד כדי להדר dll שמיש עבור vb6.

מטרה משנית: במידה והקוד שתשלח יהיה ברור וקל להבנה ( כך שלמרות שלא אוכל לנסות אותו, סביר שלא אשבור אותו כאשר אצרף אותו לקוד הקיים ) הקוד יכנס לגרסה הבאה משתמש יעשה configure --enable-vb6-dll ויקבל את ה dll.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
Prismלא בפורום כעת ת.הצטרפות: 17/01/2006 · הודעות: 144 ·
 

הודעה פורסם: 11/01/2007 - 23:21
נושא ההודעה:

אוקיי. למעשה לא שיניתי את הקבצים המקוריים, אלא רק הוספתי קוד במטרה לעטוף את הספריה ע"י DLL. הבעייה עם הDLL שיצרתי היא שהוא מכיל רק 4 פונקציות שהייתי צריך מכל המערכת, מאחר שלא היה לי זמן להמשיך הלאה וגם לא צורך.

קובץ הC נראה כך:

קוד:
#include <windows.h>
#include "hdate.h"

__declspec (dllexport)
__stdcall DWORD getHoliday (DWORD d, DWORD m, DWORD y)
{
  hdate_struct h;
  hdate_set_gdate(&h, d, m, y);
  return hdate_get_holyday(&h, FALSE);
}

__declspec (dllexport)
__stdcall DWORD getHebDay (DWORD d, DWORD m, DWORD y)
{
  hdate_struct h;
  hdate_set_gdate(&h, d, m, y);
  return h.hd_day;
}

__declspec (dllexport)
__stdcall DWORD getHebMonth (DWORD d, DWORD m, DWORD y)
{
  hdate_struct h;
  hdate_set_gdate(&h, d, m, y);
  return h.hd_mon;
}

__declspec (dllexport)
__stdcall DWORD getHebYear (DWORD d, DWORD m, DWORD y)
{
  hdate_struct h;
  hdate_set_gdate(&h, d, m, y);
  return h.hd_year;
}

__declspec (dllexport) BOOL __stdcall DllMain(HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
   return TRUE;
}


קימפלתי את libhdate על מערכת MinGW (למעשה msys), ע"י:
configure --prefix=/usr --disable-nls
make
make install

אח"כ קימפלתי את קובץ הDLL כך:

קוד:
g++ -shared -o hdatedll.dll hdatedll.c -Wl,-add-stdcall-alias,--out-implib,libhdatedll_dll.a -Lc:/msys/1.0/lib -lhdate


לבסוף בניתי קובץ DEF שנראה כך:

קוד:
LIBRARY hdatedll

EXPORTS
getHoliday
getHebDay
getHebMonth
getHebYear


ולסיום, ההכנסה לVB...

קוד:
Private Declare Function getHoliday Lib "hdatedll.dll" Alias "_Z10getHolidaymmm@12" (ByVal d As Long, ByVal m As Long, ByVal y As Long) As Long
Private Declare Function getHebDay Lib "hdatedll.dll" Alias "_Z9getHebDaymmm@12" (ByVal d As Long, ByVal m As Long, ByVal y As Long) As Long
Private Declare Function getHebMonth Lib "hdatedll.dll" Alias "_Z11getHebMonthmmm@12" (ByVal d As Long, ByVal m As Long, ByVal y As Long) As Long
Private Declare Function getHebYear Lib "hdatedll.dll" Alias "_Z10getHebYearmmm@12" (ByVal d As Long, ByVal m As Long, ByVal y As Long) As Long


שימו לב שהAlias יכול להשתנות. כדי למצוא את הAlias החדש, צריך לפתוח את הDLL בעזרת הDependency Walker של ויז'ואל סטודיו או ידנית בעזרת כל עורך טקסט, ולחפש את השם של הפונקציה כפי שהוא מופיע בDLL.

זהו זה. נראה פשוט, אבל לקח לי יומיים להגיע לזה. Smile
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 11/01/2007 - 23:27
נושא ההודעה:

מגניב Cool
יכנס בהקדם לאתר.
כאשר יהיה לי קצת יותר זמן אני גם אכניס את זה ל cvs ואח"כ זה יכנס לגירסה הבאה.

קובי.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 11/01/2007 - 23:33
נושא ההודעה:

Prism :
...
זהו זה. נראה פשוט, אבל לקח לי יומיים להגיע לזה. Smile


נ.ב.
יומיים זה בסדר גמור Wink
האם מישהוא מכיר דרך יותר יפה למצוא את ה Alias או לעקוף את הצורך בו ?

קובי.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 11/01/2007 - 23:39
נושא ההודעה:

נ.נ.ב
Prism: אני אצתרך שם ואי-מייל ( או כינוי Prism ? ) כדי שיהיה לי שם לכתוב בתעוד של הקוד וההסברים.

קובי.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
Prismלא בפורום כעת ת.הצטרפות: 17/01/2006 · הודעות: 144 ·
 

הודעה פורסם: 12/01/2007 - 16:44
נושא ההודעה:

שלחתי לך הודעה פרטית.


לגבי הaliases, לא מצאתי דרך טובה יותר. עקרונית VB אמורה למצוא את השם של הפונקציה בעצמה בהתבסס על השם הרגיל של הפונקציה (ולא השם המקושט), אבל זה פשוט לא עבד אצלי. יכול להיות שצריך להיות איזשהו טריק עם הקובץ DEF, ולהכניס שם את המידע לגבי הקישוט שנוסף לפונקציה ע"י GCC.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
nadavvinלא בפורום כעת ת.הצטרפות: 08/12/2003 · הודעות: 7065 ·
 

הודעה פורסם: 12/01/2007 - 19:48
נושא ההודעה:

Prism :
שלחתי לך הודעה פרטית.


לגבי הaliases, לא מצאתי דרך טובה יותר. עקרונית VB אמורה למצוא את השם של הפונקציה בעצמה בהתבסס על השם הרגיל של הפונקציה (ולא השם המקושט), אבל זה פשוט לא עבד אצלי. יכול להיות שצריך להיות איזשהו טריק עם הקובץ DEF, ולהכניס שם את המידע לגבי הקישוט שנוסף לפונקציה ע"י GCC.


VB זה לא ויזואל בייסיק???

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם Yahoo Messenger MSN Messenger מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
kzamirלא בפורום כעת ת.הצטרפות: 25/12/2004 · הודעות: 76 ·
 

הודעה פורסם: 12/01/2007 - 20:09
נושא ההודעה:

nadavvin :

VB זה לא ויזואל בייסיק???


וי-בי זה ויזואל ביסיק ו וי-בי-6 זה ויזואל ביסיק 6. מה השאלה ?

Prism: אני לא יודע להשתמש במערכת ההודעות באתר, תשלח לי מייל בקשה.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 13/01/2007 - 11:44
נושא ההודעה:

הכנסתי את ההסברים של Prism לאתר של libhdate כדי שמי שירצה להכין dll לשימוש עם vb6 יוכל לעשות זאת בקלות.
http://libhdate.sourceforge.net/install.html#windows

1. הערות והארות על ההסבר יתקבלו בברכה ( אין לי דרך לבדוק אותו בעצמי ... )
2. מי שמעוניין להכין את הקוד כפתצ' שאפשר להוסיף לחבילת הקוד הבסיסית של libhdate, מוזמן, אני כניראה בכל מקרה אעשה את זה מתי שהוא, אך כניראה רק בעוד הרבה זמן.

קובי.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. Prism
  2. kzamir
  3. Prism
  4. kzamir
  5. Prism
  6. Prism
  7. kzamir
  8. Prism
  9. kzamir
  10. Prism
  11. אורח
  12. אורח
  13. אורח
  14. Prism
  15. nadavvin
  16. kzamir
  17. אורח

Google Ads